Comment faire une boucle et get toutes les keys des nœuds nesteds dans Firebase?

J'essaie d'get les keys des nœuds nesteds dans Firebase et je ne suis pas sûr de savoir comment faire.

Par exemple dans ce cas:

Exemple

Comment puis-je savoir que 2,3,4 existent en 1?

Je pense à mettre une valeur dans une list séparément dans Firebase. Mais y a-t-il une façon plus intelligente de faire cela? Existe-t-il un moyen plus efficace d'get les keys de tous les nœuds nesteds dans Firebase?

Dans Android

Donne access à tous les enfants immédiats de cet instantané. Peut être utilisé en natif pour les loops:

for (DataSnapshot child : parent.getChildren()) { //Here you can access the child.getKey() } 

Dans iOS

 for (child in snapshot.children) { //Here you can access child.key } 

En Web

 snapshot.forEach(function(childSnapshot) { //Here you can access childSnapshot.key }); 

Vous pouvez le mettre dans une list différente ou dans le même path, l'important est de garder à l'esprit combien de données vous récupérez réellement lors de l'appel d'un événement. Et comment allez-vous interroger cette information … c'est pourquoi il est recommandé dans NoSQL de garder les noeuds plats

Vous devez travailler avec des arrays de dictionarys. Itérer à travers chacun du Dictionnaire, puis vous devez vérifier si la key est présente OU pas. Parce que dans Firebase nous devons envoyer des keys spécifiques au server.

RAPIDE

 let key = "1" for child in snapshot.children { if let snap = child.childSnapshotForPath(key){ print("Able resortingeve value : \(snap) for key : \(key)") } else { print("Unable to resortingeve value for key : \(key)") } } 

OBJECTIF C

 NSSsortingng *key = @"1"; for (NSDictionary *dic in array) { NSArray *keys = [dic allKeys]; if ([keys containsObject:key]){ } } 

J'ai trouvé un moyen d'itérer sur json nested dont la key est random.

 var ref = FIRDatabase.database().reference(withPath: "timinig") ref.observeSingleEvent(of: .value, with: { snapshot in print(snapshot.childrenCount) // I got the expected number of items let enumerator = snapshot.children while let rest = enumerator.nextObject() as? FIRDataSnapshot { print("-") print(rest.key) let newobj=rest.children while let rest1 = newobj.nextObject() as? FIRDataSnapshot { print(rest1.key) } print("-") }