remove realtime query leer from datos data consultas borrar javascript web firebase

realtime - leer datos de firebase javascript



Cómo eliminar/eliminar nodos en Firebase (5)

Como otros han notado, la llamada a .remove() es asincrónica. Todos debemos ser conscientes de que nada sucede "instantáneamente" , incluso si está a la velocidad de la luz.

Lo que quiere decir con "instantáneamente" es que la siguiente línea de código debería poder ejecutarse después de la llamada a .remove() . Con las operaciones asincrónicas, la siguiente línea puede ser cuando los datos se han eliminado, puede que no , es totalmente casual y la cantidad de tiempo que ha transcurrido.

.remove() toma un parámetro de una función de devolución de llamada para ayudar a manejar esta situación para realizar operaciones una vez que sabemos que la operación se ha completado (con o sin un error). .push() toma dos params, un valor y una devolución de llamada al igual que .remove() .

Aquí está su código de ejemplo con modificaciones:

ref = new Firebase("myfirebase.com") ref.push({key:val}, function(error){ //do stuff after push completed }); // deletes all data pushed so far ref.remove(function(error){ //do stuff after removal });

Estoy usando Firebase para una aplicación web. Está escrito en Javascript sin usar bibliotecas externas.

Puedo "presionar" y recuperar datos con ''.on ('' child_added '')'', pero ''.remove ()'' no funciona como debería. De acuerdo con la API,

"Firebase.remove () - Elimina los datos en esta ubicación de Firebase. También se eliminarán los datos en las ubicaciones de los niños. El efecto de la eliminación será visible inmediatamente".

Sin embargo, la eliminación no está ocurriendo inmediatamente; solo cuando todo el script se ejecuta. Necesito eliminar y luego usar el árbol despejado inmediatamente después.

Código de ejemplo:

ref = new Firebase("myfirebase.com") //works ref.push({key:val}) //works ref.on(''child_added'', function(snapshot){ //do stuff }); //works ref.remove() //does not remove until the entire script/page is done

Aquí hay una publicación similar here pero no estoy usando las librerías Ember, y aun así parece una solución para lo que debería ser tan simple como lo explica la API.


El problema es que llamas a remove en la raíz de tu Firebase:

ref = new Firebase("myfirebase.com") ref.remove();

Esto no funcionará, porque no puedes eliminar una Firebase completa a través de la API.

Sin embargo, puedes eliminar cualquier niño debajo de él.

ref.child(key).remove();


Espero que este código ayude a alguien, es de la documentación oficial de Google Firebase :

var adaRef = firebase.database().ref(''users/ada''); adaRef.remove() .then(function() { console.log("Remove succeeded.") }) .catch(function(error) { console.log("Remove failed: " + error.message) });


Para eliminar un registro.

var db = firebase.database(); var ref = db.ref(); var survey=db.ref(path+''/''+path); //Eg path is company/employee survey.child(key).remove(); //Eg key is employee id


Firebase.remove() como probablemente la mayoría de los métodos de Firebase son asincrónicos, por lo tanto, debes escuchar los eventos para saber cuándo sucedió algo:

parent = ref.parent() parent.on(''child_removed'', function (snapshot) { // removed! }) ref.remove()

Según los documentos de Firebase, debería funcionar incluso si pierdes la conexión de red. Si desea saber cuándo se ha sincronizado realmente el cambio con los servidores de Firebase, puede pasar una función de devolución de llamada al método Firebase.remove :

ref.remove(function (error) { if (!error) { // removed! } }