web-dev-qa-db-fra.com

Comment accéder à un champ spécifique depuis Cloud FireStore Firebase dans Swift

Voici ma structure de données:

data structure

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.

11
Kunwar Sahni

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 .

8
Doug Stevenson

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")
            }
        }
1
Anthony Sobo

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")
    }
}
0
Yash Kothari

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é.

0
emmanuellmota