在Firebase Android上更新数据
我想在特定节点上更新Firebase上的日期 数据库结构: 我正试着成为在Firebase Android上更新数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想在特定节点上更新Firebase上的日期 数据库结构: 我正试着成为 private void updateData() { database = FirebaseDatabase.getInstance(); myref = database.getReference(); myref.child("myDb").child("awais@gmailcom").addListenerForSingleValueEvent(new ValueEven
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());
}
});
}
我想用newValue
的值更新leftSpace
键,newValue
是这里的字符串类型。但它不会更新Firebase中的值
如果我在这里给
dataSnapshot.getRef().child("leftSpace").setValue(765);
它更新得很好。但是我想在Firebase上以字符串的格式更新
我在Firebase上保存了所有字符串类型的数据。(我的模式类包含所有类型字符串)
为什么不在这里更新string类型的newvalue
编辑1由@Rjz Satvara建议
您的方法是在myDB
as下添加一个新节点
它没有更新已经存在的值。在Firebase中要更新特定值,您可以使用它
ref.child("myDb").child("awais@gmailcom").child("leftSpace").setValue("YourDateHere");
或者您可以使用“/”移动到子级,如下所示:
ref.child("myDb/awais@gmailcom/leftSpace").setValue("YourDateHere");
可以在同一个子对象中指定新值,如
Firebase firebase = new Firebase("your database link/myDb");
firebase.child("awais@gmail.com").child("leftSpace").setValue("newValue");
根据Firebase官方文档,您可以通过这种方式更新父节点的特定节点 以这种方式使用setValue()将覆盖指定位置的数据,包括任何子节点。但是,您仍然可以在不重写整个对象的情况下更新子对象。如果要允许用户更新其配置文件,可以按如下方式更新用户名: 注意!表_NAME表示要更新其子节点的父节点
不工作。它正在创建一个新节点。请参阅相关的编辑1。仍不工作。它正在
myDb
节点下添加一个名为leftSpace
的新节点。(myDb
是我的数据库名)。看看我在哪里。我以myref.child(“停车场”).child(“awais@gmailcom“”.addListenerForSingleValueEvent(新值EventListener(){@Override public void onDataChange(DataSnapshot DataSnapshot){try{myref.child('awais@gmailcom“”.child(“leftSpace”).setValue(“YourDateHere”)}catch(例外e){e.printStackTrace();}
yup..祝贺并感谢..愉快地共享,继续学习并享受您可以将整个路径作为一个字符串传递。因此,这段较短的代码实现了相同的功能:ref.child(“myDb”)/awais@gmailcom/leftSpace“).setValue(“YourDateHere”);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mDatabaseRef = database.getReference();
mDatabaseRef.child("TABLE_NAME").child("orderStatus").setValue(2);