在Firebase Android上更新数据

use*_*923 8 android firebase firebase-realtime-database

我想在特定节点上更新Firebase上的日期.

数据库结构:

在此输入图像描述

我正在努力

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());
    }
});
}
Run Code Online (Sandbox Code Playgroud)

我想更新leftSpace与价值的关键newValue,newValue是串这里的类型.但它没有更新Firebase中的值.

如果我在这里

dataSnapshot.getRef().child("leftSpace").setValue(765);
Run Code Online (Sandbox Code Playgroud)

它更新得很好.但我想在Firebase上以字符串格式更新.

我在Firebase上保存了所有字符串类型的数据.(我的模式类包含所有类型字符串)

为什么不在newvalue这里更新类型字符串?

编辑1由@Rjz Satvara推荐

您的方法是在myDBas 下添加一个新节点

在此输入图像描述

它没有更新已经存在的.

Rjz*_*ara 16

Firebase中要更新特定值,您可以使用它...

     try {
           ref.child("myDb").child("awais@gmailcom").child("leftSpace").setValue("YourDateHere");
        } catch (Exception e) {
                e.printStackTrace();
       }
Run Code Online (Sandbox Code Playgroud)

  • 您可以将整个路径作为一个字符串传递.所以这个较短的代码完成相同的操作:`ref.child("myDb/awais @gmailcom/leftSpace").setValue("YourDateHere");` (2认同)