Ich habe versucht, alle Einträge, die zu einem Benutzer gehören, durch Vergleichen ihrer UID mit dem UID-Attribut des Eintrags abzurufen.Die Swift-Firebase-Abfrage gibt null zurück, wenn die uid gefiltert wird
ref = FIRDatabase.database().reference()
self.ref?.child("Entry").queryOrdered(byChild: "uid").queryEqual(toValue: uid).observeSingleEvent(of: .value, with: { [weak self] (snapshot) -> Void in
guard let strongSelf = self else { return }
print(snapshot)
Welche
Snap (Entry) <null>
Derzeit gibt Ich habe diese Datenstruktur:
Eintrag
- KgZkrnjFYXG9zKzfgh5
- Datum: "31. März 2017"
- Text: "Test 123"
- uid: "vKSJm500zCQmy2TTFUgv8FepknF2"
- wordcount: "6"
- KgZkrnjFYXG9zKzfgh5
Benutzer
- vKSJm500zCQmy2TTFUgv8FepknF2
- E-Mail: "[email protected]"
- Provider: "E-Mail"
- vKSJm500zCQmy2TTFUgv8FepknF2
folgende Regeln:
"Users": {
"$uid": {
".write": "!data.exists() || auth.uid === $uid",
".read": "auth !== null"
}
},
"Entry":{
".read" : "auth != null",
".write" : "auth != null",
".indexOn" : "uid"
}
Im ein wenig verwirrt, weil, wenn ich versuche, um die Abfrage selbst auszudrucken, erhalte ich
let query = self.ref?.child("Entry").queryOrdered(byChild: "uid").queryEqual(toValue: uid)
print("/n")
print(query)
Optional((/Entry {
ep = "Optional(\"vKSJm500zCQmy2TTFUgv8FepknF2\")";
i = uid;
sp = "Optional(\"vKSJm500zCQmy2TTFUgv8FepknF2\")";
}))
Ich bin mir nicht sicher, was das bedeutet. Sollte ich die Abfrage ändern, um durch die AutoIDs zu gehen, bevor ich es durch uid bestelle?