【问题标题】:Android && Firebase realtime database data retrieving and writingAndroid && Firebase 实时数据库数据读写
【发布时间】:2019-03-22 22:51:54
【问题描述】:

我有两件事:USERSVALUES。一个用户可以有多个值。我想按如下方式配置我的 Firebase 实时数据库:

 "Users" : {
    "-LP4S9ewWAuEOlXKEkRB" : {
     "id" : "-LP4S9ewWAuEOlXKEkRB",
     "token" : "XXXXXXXXXXXXXXXXXXXXXXXXXX"
     }
    }
 "values":{
      userID: same as "id" in the users element,
      userToken: same as "token" in the users element,
      value: 13
    }

我已经成功完成了第一部分(保存用户),但是对于值,我的应用程序的每个新用户的值都会覆盖其他用户的值。 这是我的代码:

final String userToken =  sharedPreferences.getString("USER_TOKEN", "N/A");
//assign a personal id to the value
String valueId = dbRef.child("Values").push().getKey();
ValueData myValue= new ValueData(valueId, dataToSend);
dbRef.child("Values").child("UserToken").setValue(userToken);

请帮帮我!! 提前谢谢你。

【问题讨论】:

  • 在 .child("Values") 中,Values 有大写 V,而 JSON 有小 v。尝试在这两个地方将 .child("Values") 更改为 .child("values")
  • 感谢您的回答@Kishita,但实际上这是我的错误。在 Firebase 上,它是“价值”而不是“价值”

标签: java android json firebase-realtime-database


【解决方案1】:

假设您的数据库中的孩子被命名为 valuesuserTokennot ValuesUserToken 我现在看到在您的代码中,要解决这个问题,请更改以下代码行:

dbRef.child("Values").child("UserToken").setValue(userToken);

Map<String, Object> map = new HashMap<>();
map.put("userToken", userToken);
dbRef.child("values").updateChildren(map);

【讨论】:

  • 嗨@Alex mamo 非常感谢您的回答。它并没有真正解决这个问题,但 Hashmaps 是一个好主意。在修改您的代码后,我终于使它工作了。非常感谢
猜你喜欢
  • 1970-01-01
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 2017-06-03
  • 2021-04-14
相关资源
最近更新 更多