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)
    })


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow