Voici ma structure de données:
J'ai une application ios qui tente d'accéder aux données de Cloud Firestore. J'ai réussi à récupérer des documents complets et à rechercher des documents. Cependant, je dois accéder à des champs spécifiques à partir de documents spécifiques. Comment pourrais-je passer un appel qui me récupère juste la valeur d'un champ de Firestore dans swift? Toute aide serait appréciée.
Il n'y a pas d'API qui récupère un seul champ d'un document. Des documents entiers sont toujours récupérés lorsque vous utilisez getDocument () . Cela implique qu'il n'y a également aucun moyen d'utiliser des règles de sécurité pour protéger un champ unique dans un document différemment des autres.
Si vous essayez de minimiser la quantité de données qui traversent le fil, vous pouvez placer ce champ isolé dans son propre document dans une sous-collection du document principal et vous pouvez demander ce document individuellement.
Voir aussi ceci fil de discussion .
C'est en fait assez simple et très réalisable en utilisant l'API Firebase intégrée.
let docRef = db.collection("users").document(name)
docRef.getDocument(source: .cache) { (document, error) in
if let document = document {
let property = document.get(field)
} else {
print("Document does not exist in cache")
}
}
Il existe en fait un moyen, utilisez cet exemple de code fourni par Firebase lui-même
let docRef = db.collection("cities").document("SF")
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let property = document.get('fieldname')
print("Document data: \(dataDescription)")
} else {
print("Document does not exist")
}
}
Vous pouvez créer de nouvelles collections privées à l'intérieur de la collection principale et définir différentes règles d'accès.
Vérifiez à: Firebase Firestore obtenir des champs privés
J'espère que je vous ai aidé.