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

ria*_*ama 4 arrays android firebase firebase-realtime-database

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

Ale*_*amo 5

要实现这一点,请使用以下代码:

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);
}
Run Code Online (Sandbox Code Playgroud)

您的数据库将如下所示:

Firebase-root
    |
    --- friends
           |
           --- John: true
           |
           --- Steve: true
           |
           --- Anna: true
Run Code Online (Sandbox Code Playgroud)

要将所有这些名称放入一个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);
Run Code Online (Sandbox Code Playgroud)

您的输出将是:

[John, Steve, Anna]
Run Code Online (Sandbox Code Playgroud)