获取与用户 ID 匹配的用户帖子:Flutter

Posted

技术标签:

【中文标题】获取与用户 ID 匹配的用户帖子:Flutter【英文标题】:Fetch users post that matches user 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) 

            
        );
  

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

【问题讨论】:

【参考方案1】:

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

for (DataSnapshot snapshot : dataSnapshot.getChildren())

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

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

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

【讨论】:

以上是关于获取与用户 ID 匹配的用户帖子:Flutter的主要内容,如果未能解决你的问题,请参考以下文章

热门获取属于其他用户关注的用户的帖子

如何获取用户 ID 并以 Angular 6 的形式返回他的帖子及其评论

如何在 ASMX 网络服务中获取用户名的用户 ID

使用 *ngFor (angular + apollo + graphcool) 获取用户的帖子

如何从用户在 django 基本模板中创建的所有帖子中获取模型字段值的总和?

Laravel - Eloquent:使用用户发布表从用户那里获取帖子