Ich habe zwei Sammlungen nämlich Benutzer und Fragen.So rufen Sie Daten synchron aus Firebase ab?
Basierend auf dem Benutzer mit Benutzer-ID angemeldet, erhalte ich den currQuestion
Wert von users
Sammlung.
Basierend auf dem currQuestion
Wert, muss ich das question
Dokument aus Firebase Questions
Sammlung abrufen.
Ich habe den Code unten verwendet userId
rootRef.child("0").child("users")
.queryOrderedByChild("userId")
.queryEqualToValue("578ab1a0e9c2389b23a0e870")
.observeSingleEventOfType(.Value, withBlock: { (snapshot) in
for child in snapshot.children {
self.currQuestion = child.value["currentQuestion"] as! Int
}
print("Current Question is \(self.currQuestion)")
//print(snapshot.value as! Array<AnyObject>)
}, withCancelBlock : { error in
print(error.description)
})
abrufen und Frage abzurufen
rootRef.child("0").child("questions")
.queryOrderedByChild("id")
.queryEqualToValue(currQuestion)
.observeSingleEventOfType(.Value, withBlock: { (snapshot) in
for child in snapshot.children {
print(child.value["question"] as! String)
}
}, withCancelBlock: { error in
print(error.description)
})
Aber der obige Code wird asynchron ausgeführt. Ich brauche eine Lösung, um dies synchron zu machen oder Listener zu implementieren, so dass ich die Frage abfragen kann, sobald der Wert currQuestion
geändert wird?
Verwenden Sie den Abschlussblock, um alles zu tun, was Sie brauchen. Versuchen Sie nicht, synchron zu schreiben – Paulw11