FirebaseListAdapter - 查询

FirebaseListAdapter - Query

是否可以指定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 语句吗?

此刻,我做这样的事情:

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

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

对象

您可以将 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 阅读更多相关信息。