Vous recherchez queryOrderedByValue. Il fonctionne de la même manière que queryOrderedByChild
et vous permet d'utiliser queryEqualToValue
pour obtenir le résultat dont vous avez besoin puisque vous ne pouvez pas modifier votre schéma actuel.
Voici un exemple
// warning: untested code - just illustrating queryOrderedByValue
let ref = Database.database().reference().child("leaves-cafe").child("codes").child("Chino Hills")
let queryRef = ref.queryOrderedByValue().queryEqual(toValue: "chinohills7leavescafe101191514.19284")
queryRef.observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.exists() {
print("value does exists")
} else {
print("value doesn't exist")
}
})
Votre option alternative est de itérer sur tous les nœuds et vérifier si la valeur existe manuellement 3stud1ant3 suggéré. Cependant, notez que cette approche est à la fois coûteuse et un risque de sécurité. Vous téléchargeriez potentiellement beaucoup de données, et généralement vous ne devriez pas charger de données inutiles (en particulier s'il s'agit d'informations sensibles, ne sachant pas si c'est votre cas) sur l'appareil; c'est l'équivalent du téléchargement de tous les mots de passe d'une base de données pour vérifier si le mot saisi correspond à celui d'un utilisateur donné.
S'il vous plaît montrer un code que vous avez essayé et également montrer la structure développée de «Chino Hills» toute clé enfant? – 3stud1ant3