获取与用户 ID 匹配的用户 post:Flutter
Fetch users post that matches user ID : Flutter
伙计们,我正忙于将用 Java 编写的 android 应用程序迁移到 flutter,但我遇到了问题。
下面是我在转换为 flutter 时遇到的困难的代码。有什么办法可以转换吗
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) {
}
});
}
所有帮助都将非常有用,在此先感谢您!
问题是实时数据库的 Flutter 库没有直接等效于:
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
图书馆的回购协议中有一个 feature request,但它看起来已经关闭了。
与此同时,您可以监听 onChild...
事件来完成同样的事情。或者,您可以使用库中的 FirebaseList
来完成相同的操作。
请在此处查看我较长的回答,以获取两者的示例:
伙计们,我正忙于将用 Java 编写的 android 应用程序迁移到 flutter,但我遇到了问题。
下面是我在转换为 flutter 时遇到的困难的代码。有什么办法可以转换吗
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) {
}
});
}
所有帮助都将非常有用,在此先感谢您!
问题是实时数据库的 Flutter 库没有直接等效于:
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
图书馆的回购协议中有一个 feature request,但它看起来已经关闭了。
与此同时,您可以监听 onChild...
事件来完成同样的事情。或者,您可以使用库中的 FirebaseList
来完成相同的操作。
请在此处查看我较长的回答,以获取两者的示例: