首页 文章

Android Firebase根据其他数据库的子项过滤一个数据库

提问于
浏览
0

我有2个数据库 . 一个是博客,另一个是跟随 . 现在我只想从用户跟随我的博客帖子中检索那些数据(就像我们在任何社交媒体应用程序中所做的那样) . 我的博文帖子的格式如下:

以及以下格式的数据库:

我们可以看到,我想从以下值(值是userid)中获取值,并将它们与blogpost中每个帖子中的userId进行比较 . 如果我发现它们是相同的,我会得到查询并在firebaserecycleradapter中使用它 . 我知道如何使用firebaserecycleradapter . 请告诉我如何获取查询 .

1 回答

  • 3

    正如@AssetBekbossynov,最有效的方式,我可以从头顶思考,那就是做两个查询 .

    一个是从 Following 数据库中找到userId,然后是在 BlogPosts 数据库中循环和搜索的另一个 .

    我可以在这里给你一些示例代码,这可能会帮助您精确地编写您的需求:

    reference.orderByChild("UserId").equalTo(userIdYouWantToSearch).addListenerForSingleValueEvent(new ValueEventListener() {
                            @Override
                            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    
                                if(dataSnapshot.exists())
                                 // do what you want
                            }
    
                            @Override
                            public void onCancelled(@NonNull DatabaseError databaseError) { // ToDo: do something for errors
    
                            }
                      )};
    

    你想要做的另一个查询是 Following 数据库,它可能看起来像这样:

    ref.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    for (DataSnapshot ds : dataSnapshot.getChildren()){
                      // retrieve the userId you want
                    }
    
                }
    
                @Override
                public void onCancelled(DatabaseError databaseError) {
                    Log.d(TAG, "onCancelled", databaseError.toException());
                }
    
    
            });
    

相关问题