Firestore mise à jour qu'un seul champ
J'ai une base de données. La séquence est: collections - document - hashmaps. Par exemple:
utilisateurs - le nom de la collection
utilisateurs.uid - le nom du document
Hashmap le document se compose de beaucoup de hashmaps les données de l'utilisateur
Hashmap
Hashmap
etc
Hashmap: le nom de l'utilisateur est la clé et le téléphone, localisation, etc sont les valeurs. J'ai besoin de mettre à jour un seul champ(emplacement) pour un nom d'utilisateur, mais ne peut pas comprendre comment le faire?
J'ai essayé la manière suivante (mise à jour numéro de téléphone pour alex):
User user = new User();
user.setPhone(131902331);
Map<String,RealmObject> userMap = new HashMap<>();
userMap.put("alex",user);
mFirebaseFirestore
.collection("users")
.document(mFirebaseAuth.getUid())
.set(userMap, SetOptions.merge())
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
LOG.info("Success");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
LOG.error("Failure "+e.toString());
}
});
Ce que je fais de mal?
Auriez-vous l'esprit en montrant la structure des Documents de l'Utilisateur, j'.e: les champs et les clés de ce qu'ils ont?
OriginalL'auteur Delphian | 2017-12-12
Vous devez vous connecter pour publier un commentaire.
Lorsque vous appelez
set()
sur un document, le contenu actuel de ce que les documents sont remplacées par les données que vous transmettez.Si vous souhaitez uniquement mettre à jour les valeurs de champ que vous spécifiez dans une carte, utiliser
update()
:Voir le Firestore documentation sur mise à jour d'un document.
Quelle est l'erreur que vous obtenez? Assurez-vous également que votre question contient en fait le problème que vous avez, car il utilise une
HashMap
alors que vous venez juste de vous parler d'un domaine d'objets.Mon HashMap look aime HashMap<String, RealmObject> c'est pourquoi, lorsque j'ai essayé de les mettre dans la méthode de mise à jour, j'ai vu l'erreur de type incorrect, mais si j'utilise la méthode de jeu tout droit
Je ne suis pas sûr de savoir comment un
RealmObject
regarde, mais ces questions pourraient être pertinentes: stackoverflow.com/search?q=%5Bfirebase%5D+RealmObjectIl concers seulement Firestore. J'ai fait la même à l'aide de Firebase sans aucun problème. Mais Firestore a besoin d'une autre structure de données qui est pourquoi j'ai un problème avec la méthode de mise à jour. À l'heure actuelle, j'ai créé une nouvelle structure, cette structure est un peu redondant) et la mise à jour fonctionne parfaitement. Je ne pouvais pas trouver comment faire pour utiliser la mise à jour de la structure dans mon poste principal.
OriginalL'auteur Frank van Puffelen
Je sais que c'est presque un an question, mais cela pourrait aider quelqu'un. Utilisation la notation point
OriginalL'auteur MrAleister