android - FirebaseListAdapter - 查询

标签 android firebase firebase-realtime-database listadapter firebaseui

是否可以指定 FirebaseListAdapter 读取哪些数据?

目前,我只能读取完整的数据库。数据库包含许多不同的对象。该对象有一个值,代表创建该对象的用户。

现在,我只想读取这个特殊用户的对象。当我这样尝试时,列表字段为空。

    DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("URL");
    //HOW CAN I DO THE QUERY FOR THAT DATABASE REFERENCE?
    FirebaseListAdapter<Machine> firebaseListAdapter = new FirebaseListAdapter<Machine>(
                this,
                Machine.class,
                R.layout.list_item,
                databaseReference) {
            @Override
            protected void populateView(View v, final Machine model, int position) {
                //CAN I DO THIS BY QUERY?
                if(model.getS_UserID.equals(user.getID)){
                   //SOME STUFF WHICH I DO 
                }
        };
}
        list.setAdapter(firebaseListAdapter);

问题是,我可以通过查询 FirebaseListAdapter 来执行 If-Statement 吗?

目前,我做了这样的事情:

if(model.getS_UserID.equals(user.getID()) --> 做一些事情

但它也创建了一些非常难看的空字段。 我的数据库如下所示:

对象

  • -用户 ID = 字符串
  • -名称 = ...
  • -.....

最佳答案

您可以将 Query 传递给 FirebaseListAdapter,而不是您现在使用的数据库引用。要过滤具有用户 ID 的项目:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("URL");
Query query = databaseReference.orderByChild("s_UserId").equalTo(user.getID);

FirebaseListAdapter<Machine> firebaseListAdapter = new FirebaseListAdapter<Machine>(
            this,
            Machine.class,
            R.layout.list_item,
            query) {

Firebase documentation on ordering and filtering data 中了解更多相关信息.

关于android - FirebaseListAdapter - 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42503434/

相关文章:

android - 在谷歌日历Android中为开始日期和结束日期之间的所有日期添加事件

android - 使用 Clang 作为编译器构建 Android 项目时隐藏静态库中的符号

android - 客户要指定导出项目到.apk的key怎么办?

javascript - 从 HTML 表单获取值失败

firebase - 使用 Swift 4 中的 where Query 从 Firebase 检索数据

c# - 无法使用 Firebase 插入数据

firebase - panic : runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation firebase. google.com/go.(*App).Database

java - 我想从 firebase 检索当前用户的 ID 并将其写入另一个节点,但它只是不断拒绝

firebase - 一个应用程序中的多个 Firebase 项目

firebase-realtime-database - 如何迭代 Flutter AsyncSnapshot<DataSnapshot> for FirebaseAnimated List?