Para el código dado, trato de implementar la atomicidad. En esto, si se ejecuta el primer impulso, ejecute el segundo impulso si falla, luego retroceda el primer impulso y comience nuevamente desde la parte superior. Si el primer impulso se ejecuta con éxito, ejecute el segundo, si se ejecuta con éxito, luego ejecute el tercero y si el tercero falló, retroceda tanto el primer impulso como el segundo. y comience la ejecución de nuevo desde arriba. si pasa, guarde los datos en la base de datos en tiempo real.
"if(message){ ref.push({ mobNo : senderMobNo, message : message, time : d }); ref2.push({ mobNo : senderMobNo, message : message, time : d }); ref3.push({ mobNo : senderMobNo, message : message, time : d }); }"Si la recursividad no funciona para usted y desea que se confirmen todos los datos, debe considerar realizar adiciones simultáneas en varias ubicaciones en el árbol JSON con una sola llamada a update().
De esta manera, puede escribir los nuevos mensajes simultáneamente en las ubicaciones deseadas. Estas operaciones son atómicas, todas las actualizaciones se realizan correctamente o todas fallan. En este caso, no hay necesidad de revertir algo.
Parece que desea realizar una actualización de múltiples rutas, que es una forma de combinar varias actualizaciones en una sola llamada a la API:
if(message){ const updates = {}; let id = ref.push().key; // generate a push key updates[key] = { mobNo : senderMobNo, message : message, time : d }); id = ref.push().key; // generate another push key updates[id] = { mobNo : senderMobNo, message : message, time : d }); id = ref.push().key; // generate a third push key updates[id] = { mobNo : senderMobNo, message : message, time : d }); ref.update(updates); // send them all to the database in one go }