【问题标题】:Fetch users post that matches user ID : Flutter获取与用户 ID 匹配的用户帖子:Flutter
【发布时间】:2021-02-10 07:16:19
【问题描述】:

伙计们,我正忙着将我用 Java 编写的 android 应用迁移到颤振,但我遇到了一个问题。

以下是我在转换为颤振时遇到的问题。有什么办法可以转换吗?

posts_ref = db.ref('Posts');
      posts_ref.onValue.listen((e) {
        DataSnapshot datasnapshot = e.snapshot;
        int i = 0;
        if(datasnapshot.numChildren() != null){
          Post post = datasnapshot.val();
          if(post.publisher == user.uid){
            i++;

            posts = i.toString();

          }
        }
      });

以下是我的 android 应用程序中的 Java 代码。

private void getNrPosts(){
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Posts");
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NotNull DataSnapshot dataSnapshot) {
                int i = 0;
                for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                    Post post = snapshot.getValue(Post.class);
                    if (post.getPublisher().equals(firebaseUser.getUid())){
                        i++;
                    }
                }
                posts.setText(MessageFormat.format("{0}", i));
            }

            @Override
            public void onCancelled(@NotNull DatabaseError databaseError) {

            }
        });
  }

所有帮助都将非常有用,提前感谢您!

【问题讨论】:

    标签: firebase flutter firebase-realtime-database flutter-web


    【解决方案1】:

    问题在于实时数据库的 Flutter 库没有直接等效的:

    for (DataSnapshot snapshot : dataSnapshot.getChildren()){
    

    在库的 repo 上有一个feature request,但它看起来已经关闭了。

    与此同时,您可以侦听onChild... 事件来完成相同的操作。或者,您可以使用库中的FirebaseList 来完成相同的操作。

    在此处查看我更长的答案以获取两者的示例:Flutter: Firebase Real-Time database orderByChild has no impact on query result

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 1970-01-01
      • 2016-04-14
      相关资源
      最近更新 更多