Android && Firebase 实时数据库数据读写

Posted

技术标签:

【中文标题】Android && Firebase 实时数据库数据读写【英文标题】:Android && Firebase realtime database data retrieving and writing 【发布时间】: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 上,它是“价值”而不是“价值” 【参考方案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 是一个好主意。在修改您的代码后,我终于使它工作了。非常感谢

以上是关于Android && Firebase 实时数据库数据读写的主要内容,如果未能解决你的问题,请参考以下文章

我该如何解决这个问题:Android Studio - Flutter - Dart - firebase [关闭]

Android攻城狮CheckBox&RadioGroup&AutoCompleteTextView&MultiAutoCompleteTextView&ToggleB

android android:duplicateParentState=&quot;true&quot; &quot;false&quot;

source.android.google && developer.android.google

android IPC通信(上)-sharedUserId&amp;&amp;Messenger

Android && Firebase 实时数据库数据读写