2016-09-25 4 views
0

Noob hier.Firebase erkennt nicht, dass eine DatabaseReference existiert

Ich versuche zu sehen, ob eine DatabaseReference in meiner Datenbank existiert. Hier ist, wie ich es tun:

String key = "ABCDE"; 
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("itemIds").child(key); 
ref.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot snap) { 
     if (!snap.exists()) 
      tellUserThatItDoesntExists(); 
     else 
      tellUserThatItExists(); 
    } 

    ..... 
} 

Aber der Code führt immer zu dem Verweise nicht einmal bestehende obwohl ein Knoten root/itemIds/ABCDE (der BTW, ich durch die Firebase Konsole hinzugefügt) nicht in der Datenbank vorhanden ist.

Alle Daten sind öffentlich, es gibt also keinen Grund für mich, keine Daten lesen zu dürfen.

Bearbeiten: Hier ist ein Screenshot des visuellen Baums der Datenbank. Alles, was hier (mit Ausnahme der meh Knoten) wurde unter Verwendung von Firebase Konsole gespeichert: Screenshot of the visual tree

Ein weiteres bearbeiten: Haben einige Hantieren und offenbar auf Grund meiner Beobachtung, Firebase keine Daten lesen kann, scheinen die durch die hinzugefügt wurden, Konsole. Ich bin zu dieser Schlussfolgerung gekommen, weil ich das Programm, an dem ich gerade arbeite, dazu gebracht habe, etwas in die Datenbank zu schreiben und zu überprüfen, ob das existiert und es gut funktioniert.

Haben Sie eine Idee, wie Sie dieses Problem lösen können?

+0

Bitte teilen Sie eine Momentaufnahme Ihres Firebase-Datenbaums Oder json Ihrer Firebase-Daten? –

+0

Der Grund, warum ich nach dem obigen gefragt habe, ist, dass ich nicht verstehen kann, ob ** root ** ein Knoten mit dem Namen root ist oder ob man den Wurzelverweis nur als root bezeichnet. Wenn es ein Knoten ist, dann müssen Sie es vor .child ("itemIds") hinzufügen –

+0

Bitte beachten Sie meine Bearbeitung. –

Antwort

2

Ok, also ist der Grund für diesen Fehler offensichtlich von Ihrem Schnappschuss.

Speichern Sie keine Daten mit - "" Anführungszeichen! Firebase liest die von der Konsole hinzugefügten Daten einfach. Aber wenn Sie Zitate hinzufügen, müssen Sie verweisen als - .child ("" itemIds "")

Hoffe, dass dies hilft. Entfernen Sie die Zitate und Firebase wird es lesen. Nur der Wert für key kann Anführungszeichen haben. Überprüfen Sie den meh Knoten, wie es formatiert ist. Das ist der richtige Weg.

+0

Geez. Das ist mir nicht aufgefallen. Ich bin dumm. Ich danke dir sehr. –

+1

Es ist in Ordnung. Wir alle passieren solche Fehler. Bitte denken Sie darüber nach, die Antwort zu verbessern. –

+0

Bereits getan. :) –

Verwandte Themen