firebase
¿Cómo escucho los errores al acceder a la base de datos?
Buscar..
Introducción
Hay muchas razones por las que una operación de lectura o escritura puede fallar. Uno frecuente es porque sus reglas de seguridad rechazan la operación, por ejemplo, porque no está autenticado (de manera predeterminada, un usuario autenticado solo puede acceder a la base de datos) o porque está escribiendo / escuchando en una ubicación donde no lo hace. tener permiso.
Detecta errores al escribir un valor en Android
Hay muchas razones por las que una operación de escritura puede fallar. Uno frecuente es porque sus reglas de seguridad rechazan la operación, por ejemplo, porque no está autenticado (de manera predeterminada, un usuario autenticado solo puede acceder a una base de datos).
Puede ver estas violaciones de las reglas de seguridad en la salida logcat. Pero es fácil pasarlos por alto. También puede manejarlos en su propio código y hacerlos más visibles, lo que es especialmente útil durante el desarrollo (ya que su JSON, las reglas y el código cambian a menudo).
Para detectar una escritura fallida en Android, adjunte una devolución de llamada de finalización a setValue
:
ref.setValue("My new value", new DatabaseReference.CompletionListener() {
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
throw databaseError.toException();
}
});
Lanzar una excepción como esta asegura que será muy difícil pasar por alto tal error la próxima vez.
Detecta errores al leer datos en Android
Una razón frecuente por la que su operación de lectura puede no funcionar es porque sus reglas de seguridad rechazan la operación, por ejemplo porque no está autenticado (de manera predeterminada, un usuario autenticado solo puede acceder a una base de datos).
Puede ver estas violaciones de las reglas de seguridad en la salida logcat. Pero es fácil pasarlos por alto. También puede manejarlos en su propio código y hacerlos más visibles, lo que es especialmente útil durante el desarrollo (ya que su JSON, las reglas y el código cambian a menudo).
Para detectar una lectura fallida en Android, debe implementar el método onCancelled
de su ChildEventListener
:
databaseRef.addChildEventListener(new ChildEventListener() {
public void onChildAdded(DataSnapshot dataSnapshot, String s) { ... }
public void onChildChanged(DataSnapshot dataSnapshot, String s) { ... }
public void onChildRemoved(DataSnapshot dataSnapshot) { ... }
public void onChildMoved(DataSnapshot dataSnapshot, String s) { ... }
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
O si tienes un ValueEventListener
:
databaseRef.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot, String s) { ... }
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
Con este código en su lugar, será bastante difícil pasar por alto un error de seguridad al leer datos en Android.
Detecta errores al escribir un valor en iOS
Hay muchas razones por las que una operación de escritura puede fallar. Uno frecuente es porque sus reglas de seguridad rechazan la operación, por ejemplo, porque no está autenticado (de manera predeterminada, un usuario autenticado solo puede acceder a una base de datos).
Puede ver estas violaciones de las reglas de seguridad en la salida de su programa. Pero es fácil pasarlos por alto. También puede manejarlos en su propio código y hacerlos más visibles, lo que es especialmente útil durante el desarrollo (ya que su JSON, las reglas y el código cambian a menudo).
Para detectar una escritura fallida en iOS, adjunte un bloque de finalización a setValue :
let message = ["name": "puf", "text": "Hello from iOS"]
ref!.childByAutoId().setValue(message) { (error) in
print("Error while writing message \(error)")
}
Lanzar una excepción como esta asegura que será muy difícil pasar por alto tal error la próxima vez.
Detectando errores al leer datos en JavaScript
Una razón frecuente por la que su operación de lectura puede no funcionar es porque sus reglas de seguridad rechazan la operación, por ejemplo porque no está autenticado (de manera predeterminada, un usuario autenticado solo puede acceder a una base de datos).
Puede ver estas violaciones de las reglas de seguridad en la consola de JavaScript de su navegador. Pero es fácil pasarlos por alto. También puede manejarlos en su propio código y hacerlos más visibles, lo que es especialmente útil durante el desarrollo (ya que su JSON, las reglas y el código cambian a menudo).
Para detectar una lectura fallida en JavaScript, debe implementar agregar una segunda devolución de llamada a su cláusula on()
:
ref.on('value', function(snapshot) {
console.log(snapshot.key, snapshot.val());
}, function(error) {
alert(error);
})
Con este código en su lugar, será bastante difícil pasar por alto un error de seguridad al leer datos en JavaScript.
Detectando errores al escribir un valor en JavaScript
Hay muchas razones por las que una operación de escritura puede fallar. Uno frecuente es porque sus reglas de seguridad rechazan la operación, por ejemplo, porque no está autenticado (de manera predeterminada, un usuario autenticado solo puede acceder a una base de datos).
Puede ver estas violaciones de las reglas de seguridad en la salida de la consola. Pero es fácil pasarlos por alto. También puede manejarlos en su propio código y hacerlos más visibles, lo que es especialmente útil durante el desarrollo (ya que su JSON, las reglas y el código cambian a menudo).
Para detectar una escritura fallida en JavaScript, adjunte una devolución de llamada de finalización para set
:
ref.set("My new value").catch(function(error)
console.error(error);
alert(error);
});
Mostrar una alerta como esta asegura que será muy difícil pasar por alto tal error la próxima vez.
Detecta errores al leer datos en iOS
Una razón frecuente por la que su operación de lectura puede no funcionar es porque sus reglas de seguridad rechazan la operación, por ejemplo porque no está autenticado (de manera predeterminada, un usuario autenticado solo puede acceder a una base de datos).
Puede ver estas violaciones de las reglas de seguridad en la salida de la consola. Pero es fácil pasarlos por alto. También puede manejarlos en su propio código y hacerlos más visibles, lo que es especialmente útil durante el desarrollo (ya que su JSON, las reglas y el código cambian a menudo).
Para detectar una lectura fallida en iOS, debe implementar el bloque withCancel
de su observador:
ref!.child("notAllowed").observe(.value, with: { (snapshot) in
print("Got non-existing value: \(snapshot.key)")
}, withCancel: { (error) in
print(error)
})