【问题标题】:Firebase DatabaseReference filter by specified valuesFirebase DatabaseReference 按指定值过滤
【发布时间】:2017-10-26 00:30:03
【问题描述】:

假设我有这个 firebase JSON 结构:

我需要得到所有属性“from”等于“this”的问题。

我知道我可以使用 Volley 来创建 StringRequest 并从我的 questions.json 中获取所有值。然后,在客户端,我可以遍历响应并删除那些没有正确属性的响应,但这只有在我有几个问题时才有效。如果我有数百万个问题,我需要遍历这数百万个问题。

有什么方法可以对我的请求进行过滤以仅获取具有我选择的属性的问题? (例如:搜索 questions.json where from == this)

【问题讨论】:

    标签: android json filter firebase-realtime-database


    【解决方案1】:

    如果对你的场景有用,试试这个

     DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
    
        Query query = reference.child("questions").orderByChild("from").equalTo("this");
        query.addListenerForSingleValueEvent(new ValueEventListener() { 
            @Override 
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {
    
                    for (DataSnapshot issue : dataSnapshot.getChildren()) {
                    // do with your result
                    } 
                } 
            } 
    
            @Override 
            public void onCancelled(DatabaseError databaseError) {
    
            } 
        }); 
    

    【讨论】:

      【解决方案2】:

      你可以使用equalTo

      Query query = reference.child("questions").orderByChild("from").equalTo("this");

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-03
        • 1970-01-01
        • 2015-05-23
        • 2019-04-15
        • 1970-01-01
        • 2015-09-11
        相关资源
        最近更新 更多