我想在特定节点上更新Firebase上的日期。
DB结构:
我试着
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());
}
});
}
我想用leftSpace
值更新newValue
键,这里newValue
是字符串的类型。但是它没有更新Firebase中的值。
如果我在这里
dataSnapshot.getRef().child("leftSpace").setValue(765);
它更新得很好。但是我想以Firebase上字符串的格式进行更新。
我在Firebase上保存了所有字符串类型的数据。(我的模式类包含所有类型字符串)
为什么不在这里更新字符串类型的newvalue
?
@Rjz推荐的编辑1
您的方法是在myDB
下添加一个新节点,如
它不是在更新已经更新的内容。
发布于 2016-12-23 07:06:21
在Firebase中,要更新特定值,可以使用它.
ref.child("myDb").child("awais@gmailcom").child("leftSpace").setValue("YourDateHere");
或者您可以使用"/“进入子区域,如下所示:
ref.child("myDb/awais@gmailcom/leftSpace").setValue("YourDateHere");
发布于 2017-10-25 20:02:09
您可以在同一个子项目中分配新值,如
Firebase firebase = new Firebase("your database link/myDb");
firebase.child("awais@gmail.com").child("leftSpace").setValue("newValue");
发布于 2018-08-02 04:41:59
根据Firebase官方文档,您可以通过这种方式更新父节点的特定节点
以这种方式使用setValue()覆盖指定位置的数据,包括任何子节点。但是,您仍然可以在不重写整个对象的情况下更新子对象。如果希望允许用户更新其配置文件,可以按以下方式更新用户名:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mDatabaseRef = database.getReference();
mDatabaseRef.child("TABLE_NAME").child("orderStatus").setValue(2);
注意!TABLE_NAME是指要更新其子节点的父节点。
https://stackoverflow.com/questions/41296416
复制相似问题