web-dev-qa-db-fra.com

Firestore obtenir la valeur du champ de DocumentSnapshot

Si j'ai une base de données Firebase Firestore dans laquelle j'ai récupéré une DocumentSnapshot pour le document correspondant à la collection de droite et stockée dans une variable document, comment puis-je récupérer la valeur de cette DocumentSnapshot dans le champ "nom d'utilisateur"? Le champ a une valeur de chaîne.

 enter image description here

5
Paradox

DocumentSnapshot a une méthode getString () qui prend le nom d'un champ et renvoie sa valeur sous forme de chaîne.

String value = document.getString("username");
13
Doug Stevenson

Vous devez faire une DocumentReference pour obtenir le contenu de votre document. 

Un simple sera comme ça.

DocumentReference docRef = myDB.collection("users").document("username");
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
     public void onComplete(@NonNull Task<DocumentSnapshot> task) {
          if (task.isSuccessful()) {
               DocumentSnapshot document = task.getResult();
                    if (document != null) {
                         Log.i("LOGGER","First "+document.getString("first"));
                         Log.i("LOGGER","Last "+document.getString("last"));
                         Log.i("LOGGER","Born "+document.getString("born"));
                    } else {
                         Log.d("LOGGER", "No such document");
                    }
               } else {
                    Log.d("LOGGER", "get failed with ", task.getException());
                }
          }
     });

L'inconvénient est que vous devez connaître votre ID de document pour obtenir les valeurs de champ.

1
Steffo Dimfelt

vous pouvez utiliser la méthode get pour obtenir la valeur d'un champ

String username = (String) docuemnt.get("username");  //if the field is String
Boolean b = (Boolean) document.get("isPublic");       //if the field is Boolean
Integer i = (Integer) document.get("age")             //if the field is Integer

commander le doc pour DocumentSnapshot

0
Ali