firebase
Comment écouter les erreurs lors de l'accès à la base de données?
Recherche…
Introduction
Il y a de nombreuses raisons pour lesquelles une opération de lecture ou d'écriture peut échouer. Un problème fréquent est que vos règles de sécurité rejettent l'opération, par exemple parce que vous n'êtes pas authentifié (par défaut, une base de données n'est accessible que par un utilisateur authentifié) ou parce que vous écrivez / écoutez à un endroit où vous ne l'êtes pas. avoir la permission
Détecter les erreurs lors de l'écriture d'une valeur sur Android
Il existe de nombreuses raisons pour lesquelles une opération d'écriture peut échouer. Un problème fréquent est que vos règles de sécurité rejettent l'opération, par exemple parce que vous n'êtes pas authentifié (par défaut, une base de données n'est accessible que par un utilisateur authentifié).
Vous pouvez voir ces violations de règles de sécurité dans la sortie logcat. Mais il est facile de les ignorer. Vous pouvez également les gérer dans votre propre code et les rendre plus visibles, ce qui est particulièrement utile pendant le développement (puisque votre JSON, vos règles et votre code changent souvent).
Pour détecter un échec d’écriture sur Android, vous devez joindre un rappel d’achèvement à setValue
:
ref.setValue("My new value", new DatabaseReference.CompletionListener() {
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
throw databaseError.toException();
}
});
Lancer une exception comme celle-là garantit qu'il sera très difficile d'ignorer une telle erreur la prochaine fois.
Détecter les erreurs lors de la lecture de données sur Android
Une raison fréquente pour laquelle votre opération de lecture peut ne pas fonctionner est que vos règles de sécurité rejettent l'opération, par exemple parce que vous n'êtes pas authentifié (par défaut, une base de données n'est accessible que par un utilisateur authentifié).
Vous pouvez voir ces violations de règles de sécurité dans la sortie logcat. Mais il est facile de les ignorer. Vous pouvez également les gérer dans votre propre code et les rendre plus visibles, ce qui est particulièrement utile pendant le développement (puisque votre JSON, vos règles et votre code changent souvent).
Pour détecter une lecture échouée sur Android, vous devez implémenter la méthode onCancelled
de votre 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();
}
});
Ou si vous avez un ValueEventListener
:
databaseRef.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot, String s) { ... }
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
Avec ce code en place, il sera difficile de négliger une erreur de sécurité lors de la lecture de données sur Android.
Détecter les erreurs lors de l'écriture d'une valeur sur iOS
Il existe de nombreuses raisons pour lesquelles une opération d'écriture peut échouer. Un problème fréquent est que vos règles de sécurité rejettent l'opération, par exemple parce que vous n'êtes pas authentifié (par défaut, une base de données n'est accessible que par un utilisateur authentifié).
Vous pouvez voir ces violations de règles de sécurité dans la sortie de votre programme. Mais il est facile de les ignorer. Vous pouvez également les gérer dans votre propre code et les rendre plus visibles, ce qui est particulièrement utile pendant le développement (puisque votre JSON, vos règles et votre code changent souvent).
Pour détecter un échec d'écriture sur iOS, vous devez joindre un bloc d'achèvement à setValue :
let message = ["name": "puf", "text": "Hello from iOS"]
ref!.childByAutoId().setValue(message) { (error) in
print("Error while writing message \(error)")
}
Lancer une exception comme celle-là garantit qu'il sera très difficile d'ignorer une telle erreur la prochaine fois.
Détection des erreurs lors de la lecture de données en JavaScript
Une raison fréquente pour laquelle votre opération de lecture peut ne pas fonctionner est que vos règles de sécurité rejettent l'opération, par exemple parce que vous n'êtes pas authentifié (par défaut, une base de données n'est accessible que par un utilisateur authentifié).
Vous pouvez voir ces violations de règles de sécurité dans la console JavaScript de votre navigateur. Mais il est facile de les ignorer. Vous pouvez également les gérer dans votre propre code et les rendre plus visibles, ce qui est particulièrement utile pendant le développement (puisque votre JSON, vos règles et votre code changent souvent).
Pour détecter un échec de lecture en JavaScript, vous devez implémenter un deuxième rappel à votre clause on()
:
ref.on('value', function(snapshot) {
console.log(snapshot.key, snapshot.val());
}, function(error) {
alert(error);
})
Avec ce code en place, il sera difficile de négliger une erreur de sécurité lors de la lecture de données en JavaScript.
Détection des erreurs lors de l'écriture d'une valeur en JavaScript
Il existe de nombreuses raisons pour lesquelles une opération d'écriture peut échouer. Un problème fréquent est que vos règles de sécurité rejettent l'opération, par exemple parce que vous n'êtes pas authentifié (par défaut, une base de données n'est accessible que par un utilisateur authentifié).
Vous pouvez voir ces violations de règles de sécurité dans la sortie de la console. Mais il est facile de les ignorer. Vous pouvez également les gérer dans votre propre code et les rendre plus visibles, ce qui est particulièrement utile pendant le développement (puisque votre JSON, vos règles et votre code changent souvent).
Pour détecter un échec d'écriture en JavaScript, vous devez joindre un rappel d'achèvement à set
:
ref.set("My new value").catch(function(error)
console.error(error);
alert(error);
});
Afficher une alerte comme celle-ci garantit qu'il sera très difficile d'ignorer une telle erreur la prochaine fois.
Détecter les erreurs lors de la lecture de données sur iOS
Une raison fréquente pour laquelle votre opération de lecture peut ne pas fonctionner est que vos règles de sécurité rejettent l'opération, par exemple parce que vous n'êtes pas authentifié (par défaut, une base de données n'est accessible que par un utilisateur authentifié).
Vous pouvez voir ces violations de règles de sécurité dans la sortie de la console. Mais il est facile de les ignorer. Vous pouvez également les gérer dans votre propre code et les rendre plus visibles, ce qui est particulièrement utile pendant le développement (puisque votre JSON, vos règles et votre code changent souvent).
Pour détecter une lecture échouée sur iOS, vous devez implémenter le bloc withCancel
de votre observateur:
ref!.child("notAllowed").observe(.value, with: { (snapshot) in
print("Got non-existing value: \(snapshot.key)")
}, withCancel: { (error) in
print(error)
})