Je souhaite mettre à jour la date sur Firebase sur un nœud spécifique.
Structure de la base de données:
J'essaye comme
private void updateData() {
database = FirebaseDatabase.getInstance();
myref = database.getReference();
myref.child("myDb").child("awais@gmailcom").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
dataSnapshot.getRef().child("leftSpace").setValue(newValue);
dialog.dismiss();
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d("User", databaseError.getMessage());
}
});
}
Je veux mettre à jour la clé leftSpace
avec la valeur newValue
, newValue
est le type de chaîne ici. Mais il ne met pas à jour la valeur dans Firebase.
Si je donne ici
dataSnapshot.getRef().child("leftSpace").setValue(765);
il met à jour bien. Mais je veux mettre à jour dans le format de chaîne sur la Firebase.
J'ai sauvegardé les données sur Firebase de tous les types de chaînes. (Ma classe de modèle contient toutes les chaînes de type)
Pourquoi ne met-il pas à jour la variable newvalue
de type ici?
Edit 1 Proposé par @Rjz Satvara
Votre méthode ajoute un nouveau noeud sous myDB
en tant que
Ce n'est pas mettre à jour le déjà un.
Dans Firebase Pour mettre à jour une valeur spécifique, vous pouvez l'utiliser ...
try {
ref.child("myDb").child("awais@gmailcom").child("leftSpace").setValue("YourDateHere");
} catch (Exception e) {
e.printStackTrace();
}
Selon la documentation officielle de Firebase, vous pouvez mettre à jour le noeud spécifique du noeud parent de cette manière.
L'utilisation de setValue () de cette manière écrase les données à l'emplacement spécifié, y compris les nœuds enfants. Cependant, vous pouvez toujours mettre à jour un enfant sans réécrire tout l'objet. Si vous souhaitez autoriser les utilisateurs à mettre à jour leurs profils, vous pouvez mettre à jour le nom d'utilisateur comme suit:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mDatabaseRef = database.getReference();
mDatabaseRef.child("TABLE_NAME").child("orderStatus").setValue(2);
Remarque! TABLE_NAME signifie votre noeud parent dont vous voulez mettre à jour le noeud enfant.
vous pouvez attribuer une nouvelle valeur au même enfant, comme
Firebase firebase = new Firebase("your database link/myDb");
firebase.child("[email protected]").child("leftSpace").setValue("newValue");