如何使用Lists / ArrayLists向Firebase添加和检索数据?

时间:2017-12-17 11:13:59

标签: android arrays firebase firebase-realtime-database

我一直试图弄清楚如何使用Lists或ArrayLists将数据添加到我的firebase实时数据库。 例如,我想创建一个喜欢帖子并将其添加到列表/ arraylist中的用户列表,然后在我的实时数据库中上传该列表/ ArrayLists。 之后我还想从firebase中检索数据。

2 个答案:

答案 0 :(得分:3)

要实现此目的,请使用以下代码:

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]

答案 1 :(得分:0)

我只是澄清一下。您想手动添加喜欢帖子的用户列表吗?这对我来说似乎很奇怪一般用户喜欢发布然后更新帖子,如用率id与用户ID在服务器中的那个帖子之后显示该用户谁显示该帖子。这里有一些文件用于firebase link

中的读写操作