Obtenez de l'poussé ID de valeur spécifique dans firebase android
Je veux retrive l'id généré par firebase quand j'ai poussé la valeur suivante
Je veux récupérer "-KGdKiPSODz7JXzlgl9J" cet id pour que l'e-mail
J'ai essayé par getKey() mais c'est le retour des "utilisateurs"
et lorsque l'utilisateur d'obtenir la valeur qu'elle renvoie de l'ensemble de l'objet à partir de l'id de l'image de profil et de ne pas me faire avoir comme objet Utilisateur de mon application
comment résoudre ce problème ?
Firebase users = myFirebaseRef.child("users");
users.orderByChild("email").equalTo("[email protected]").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
dataSnapshot.getKey();
Log.d("User",dataSnapshot.getRef().toString());
Log.d("User",dataSnapshot.getValue().toString());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.d("User",firebaseError.getMessage() );
}
});
- Envisagez-vous de parcourir les utilisateurs dataSnapshot et à l'aide d'un identificateur de valeur (comme l'e-mail par exemple) pour voir si vous avez une correspondance et de récupérer les valeurs de la correspondance de l'instantané?
- oui, pour obtenir l'id correspondant à cette valeur
- Pour la prochaine fois: Vous avez inclus une image au format JSON arbre dans votre question. Veuillez remplacer qu'avec le JSON en tant que texte, vous pouvez facilement obtenir en cliquant sur le bouton Exporter dans votre Firebase base de données. Avoir le JSON que le texte fait l'objet de recherches, nous permet de l'utiliser facilement pour tester avec vos données et de les utiliser dans notre réponse et, en général, est juste une Bonne Chose à faire.
- ok merci pour votre commentaire, je vais le faire la prochaine fois
Vous devez vous connecter pour publier un commentaire.
Vous pouvez lire la clé de push() sans pousser les valeurs. Plus tard, vous pouvez créer un enfant avec cette clé, et pousser les valeurs de cette clé.
mGroupId
contient la clé qui est utilisée pour l'indexation de la valeur que vous allez enregistrer.Mise à JOUR 1:
on peut obtenir également par une ligne
//**************************************************************//
après des recherches et essayer beaucoup de choses j'ai appris à 2 manières de le faire
.
1. premier à obtenir la clé quand je télécharge le post au serveur via cette fonction
je l'ai utilisé dans mon code pour obtenir la clé après j'ai déjà poussé vers le nœud dans ma base de données
Quand vous tirez une Firebase requête, il peut éventuellement être de plusieurs résultats. Ainsi, lorsque vous demandez la valeur d'une requête, Firebase retourne une liste d'éléments. Même si il y a un seul élément correspondant, il s'agira d'une liste à un seul élément.
De sorte que vous aurez à gérer cette liste dans votre code:
En Java - Android Studio, vous pouvez obtenir l'unique poussé ID que l'article est écrit à la db...
Pour obtenir la référence à l'écriture, au lieu de chargement des DONNÉES avec un seul push()...
voici un exemple:
Je l'ai résolu pour obtenir l'id vous avez besoin d'utiliser firebase url
cela vous donnera la clé de
KG.....
Pour ceux qui utilisent l'ACVT Tutoriels(https://www.youtube.com/watch?v=cSMMWOHkP68&liste=PLGCjwl1RrtcTXrWuRTa59RyRmQ4OedWrt&index=16)
Vous pouvez obtenir la Clé à l'aide de onClick méthode comme suit:
Juste ajouter un nouveau champ pour les Utilisateurs comme nom d'utilisateur, lorsque vous créez un nouvel Utilisateur ajouter des uid et que vous pouvez le recevoir par la lecture de la requête
Je suis en train de faire comme ça.
Une autre Option pour obtenir l'unique Post-id de firebase est par l'obtention de la clé (dataSnapshot.getKey()) dans @Override méthode public void onChildAdded et de maintenir localement pour l'exemple
dataSnapshot.getKey va définir le unique en son genre, l'id dans l'Instance de la Tâche et peut être utilisé ultérieurement pour effectuer toute opération de mise à jour.
J'avais été confronté à ce problème et j'ai trouvé la solution,
vous pouvez l'obtenir à l'aide de ce code:
Simplement faire la même:
C'est le résultat: