【问题标题】:FireBase Android Need 1 value saved under a single userFireBase Android 需要 1 个值保存在单个用户下
【发布时间】:2016-12-29 22:22:35
【问题描述】:
我在 Firebase 上有以下用户 MF0qeRA4p7djfjgXxqwFOck3m6p02 的数据结构。我想获取 item3 的值以将单个字段填充到 Android 应用程序的用户界面中。我一直在查看 Stackoverflow 上的示例,但我发现的所有示例都已过时,并且不适用于当前版本的 firebase。我完全是firebase的新手,这是我在android上的第一个应用程序。我有 oncreate user 方法来填充用户电子邮件地址并添加 4 个项目字段,但检索数据我完全丢失了,我什至不知道从哪里开始。
-用户
---MF0qeRA4p7djfjgXxqwFOck3m6p02
-----item1:"1"
-----item2:"2"
-----item3:"3"
-----item4:"4"
【问题讨论】:
标签:
android
firebase
firebase-realtime-database
【解决方案1】:
据我所知,您在从此参考中检索数据时遇到问题。代码如下:
final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Users");
databaseReference.child("MF0qeRA4p7djfjgXxqwFOck3m6p02").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Map<String, Object> map=(Map<String, Object>)dataSnapshot.getValue();
String item3=(String)map.get("item3");
display(item3);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
希望这会有所帮助。
【解决方案2】:
您可以创建自定义模型并在其中插入元素。像这样的:
public class Item {
private List<Object> ojects;
}
你可以在数据库中保存 Item 的实例。在这种情况下,您有更多的控制权。另一种情况是使用push() 方法,它将生成一个新的编码密钥,如下所示:
mDatabase.child("items").push().put(new Object());