【问题标题】:How to add and retrieve data into Firebase using Lists/ArrayLists?如何使用 Lists/ArrayLists 在 Firebase 中添加和检索数据?
【发布时间】:2017-12-17 11:13:58
【问题描述】:

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

【问题讨论】:

    标签: android arrays firebase firebase-realtime-database


    【解决方案1】:

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

    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]
    

    【讨论】:

    • 你怎样才能做到这一点,这样你就不必有一个布尔值。朋友列表将只包含姓名。
    • @Marlon 可以使用数组,但使用地图更方便。
    【解决方案2】:

    我只是澄清一下。您要手动添加喜欢帖子的用户列表吗?这对我来说似乎很奇怪,通常用户单独喜欢帖子,然后在为显示该帖子的用户显示它之后使用用户 ID 更新帖子喜欢率,该用户在服务器中喜欢该帖子。这里有一些关于firebase中读写操作的文档link

    【讨论】:

      猜你喜欢
      • 2013-07-21
      • 1970-01-01
      • 2021-05-17
      • 2022-01-03
      • 1970-01-01
      • 2016-07-31
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多