Android && Firebase 实时数据库数据读写
Posted
技术标签:
【中文标题】Android && Firebase 实时数据库数据读写【英文标题】:Android && Firebase realtime database data retrieving and writing 【发布时间】:2019-03-22 22:51:54 【问题描述】:我有两件事:USERS
和 VALUES
。一个用户可以有多个值。我想按如下方式配置我的 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】:假设您的数据库中的孩子被命名为 values
和 userToken
和 not Values
和 UserToken
我现在看到在您的代码中,要解决这个问题,请更改以下代码行:
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="true" "false"
source.android.google && developer.android.google