2 votes

Aucun événement d'erreur dans le flux Firebase onValue

Je suis novice en matière de Dart et de Firebase, mais après avoir joué un peu avec, je suis tombé sur le problème suivant :

J'ai créé une application firebase de test avec les règles suivantes :

{
  "rules": {
    "privateTestData": {
        ".write": "false",
        ".read": "auth.uid !== null && auth.uid == $uid"
    },
    "publicTestData": {
        ".write": false,
        ".read": true
    }
  }
}

Maintenant, quand je lis publicTestData, tout est ok. Mais lorsque j'essaie de lire privateTestData (sans être authentifié), je m'attends à recevoir une erreur de sécurité ou quelque chose comme ça, mais errorHandler n'est jamais appelé.

Mon code :

FB.Firebase testFBReference;

valueHandler(FB.Event event) {
    var value = event.snapshot.val();
    print("Value: '$value'.");
}

errorHandler(error) {
    print("Some error.");
}

doneHandler() {
    print("Done.");
}

void initializeFBReference() {
    testFBReference = new FB.Firebase("https://test.firebaseio.com/privateTestData");
    testFBReference.onValue.listen(valueHandler, onError: errorHandler, onDone: doneHandler);
}

1voto

L'élément important ici est que vous ne pouvez pas non plus lire la valeur. Vous devrez vérifier l'authentification vous-même ou utiliser Firebase.getAuth() (pour la v2).

Le errorHandle sur listen est plutôt destiné aux erreurs concernant ce listener spécifique (principalement objet/chemin invalide) et non à l'authentification.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X