【发布时间】:2017-12-17 11:13:58
【问题描述】:
我一直在尝试弄清楚如何使用 Lists 或 ArrayLists 将数据添加到我的 firebase 实时数据库中。 例如,我想创建一个喜欢帖子的用户列表并将它们添加到列表/数组列表中,然后将该列表/数组列表上传到我的实时数据库中。 之后,我还想从 firebase 检索数据。
【问题讨论】:
标签: android arrays firebase firebase-realtime-database
我一直在尝试弄清楚如何使用 Lists 或 ArrayLists 将数据添加到我的 firebase 实时数据库中。 例如,我想创建一个喜欢帖子的用户列表并将它们添加到列表/数组列表中,然后将该列表/数组列表上传到我的实时数据库中。 之后,我还想从 firebase 检索数据。
【问题讨论】:
标签: android arrays firebase firebase-realtime-database
要实现这一点,请使用以下代码:
List<String> friends = new ArrayList<>();
friends.add("John");
friends.add("Steve");
friends.add("Anna");
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
for(String friend : friends) {
rootRef.child("friends").child(friend).setValue(true);
}
您的数据库将如下所示:
Firebase-root
|
--- friends
|
--- John: true
|
--- Steve: true
|
--- Anna: true
要将所有这些名称放入List,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference friendsRef = rootRef.child("friends");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> friends = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String friend = ds.getKey();
friends.add(friend);
}
Log.d("TAG", friends);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
friendsRef.addListenerForSingleValueEvent(eventListener);
您的输出将是:
[John, Steve, Anna]
【讨论】:
我只是澄清一下。您要手动添加喜欢帖子的用户列表吗?这对我来说似乎很奇怪,通常用户单独喜欢帖子,然后在为显示该帖子的用户显示它之后使用用户 ID 更新帖子喜欢率,该用户在服务器中喜欢该帖子。这里有一些关于firebase中读写操作的文档link
【讨论】: