retrieve recorrer data array arrays firebase firebase-realtime-database firebase-console

arrays - recorrer - put array in firebase



ConfiguraciĆ³n de matrices en Firebase usando la consola Firebase (3)

Después de escribir mi otra respuesta, me di cuenta de que podría estar mirando cómo agregar ID de inserción en la consola.

Esa no es una característica en este momento. La mayoría de ellos utilizan diferentes tipos de claves al ingresar datos de prueba o tienen un pequeño fragmento de código JavaScript en otra pestaña para generar las claves y copiarlas y pegarlas.

Solicita la función here , ya que definitivamente no eres el primero en preguntar.

Estoy usando la consola Firebase para preparar datos para una aplicación de demostración. Uno de los ítems de datos son los asistentes. Los asistentes son una matriz. Quiero agregar algunos asistentes como una matriz en Firebase. Entiendo que Firebase no tiene matrices, sino objetos con claves (en orden cronológico). ¿Cómo hago eso para preparar datos de muestra? Mis datos actuales de Firebase se parecen a los siguientes.


Firebase array? Sí, tengo el mismo problema con usted hace unas semanas, pero lo encontré here . Finalmente puedo usarlo con mi ChartJS.

function jamToArray(snapshot) { const returnArr = []; snapshot.forEach(function(childSnapshot) { const item = childSnapshot.val().time; returnArr.push(item); }); return returnArr; }; firebase.database().ref(''sensor'').limitToLast(10).on(''value'', function(snapshot) { const jam = jamToArray(snapshot); });


La base de datos de Firebase no almacena matrices. Almacena diccionarios / arrays asociados. Así que lo más cercano que puedes conseguir es:

attendees: { 0: "Bill Gates", 1: "Larry Page", 2: "James Tamplin" }

Puedes construir esta estructura en la Consola Firebase. Y luego, cuando lo lea con uno de los SDK de Firebase, se convertirá en una matriz.

firebase.database().ref(''attendees'').once(''value'', function(snapshot) { console.log(snapshot.val()); // ["Bill Gates", "Larry Page", "James Tamplin"] });

Así que este puede ser el resultado que estás buscando. Pero recomiendo leer esta publicación del blog sobre por qué Firebase lo prefiere si no almacenas arrays: https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html .

No uses una matriz, cuando realmente necesitas un conjunto

La mayoría de los desarrolladores no están realmente tratando de almacenar una matriz y creo que su caso podría ser uno de esos. Por ejemplo: ¿puede "Bill Gates" ser un asistente dos veces?

attendees: { 0: "Bill Gates", 1: "Larry Page", 2: "James Tamplin", 3: "Bill Gates" }

Si no, tendrás que comprobar si ya está en la matriz antes de agregarlo.

if (!attendees.contains("Bill Gates")) { attendees.push("Bill Gates"); }

Esta es una señal clara de que su estructura de datos no es óptima para el caso de uso. Tener que revisar todos los hijos existentes antes de agregar uno nuevo va a limitar la escalabilidad.

En este caso, lo que realmente desea es un conjunto: una estructura de datos donde cada niño solo pueda estar presente una vez. En Firebase modelas conjuntos como este:

attendees: { "Bill Gates": true, "Larry Page": true, "James Tamplin": true }

Y ahora, cuando intenta agregar a Bill Gates por segunda vez, es un no-op:

attendees["Bill Gates"] = true;

Entonces, en lugar de tener que codificar para el requisito de singularidad, la estructura de datos lo resuelve implícitamente.