【问题标题】:Android firebase apply multiple queriesAndroid firebase 应用多个查询
【发布时间】:2017-04-23 19:24:31
【问题描述】:

我有以下数据库

-KYTfJZQbg0RVzHeecIS
     createdAt: 1481204648530
     message: "rgd"
     read: false
     reciever: "583d15cf45f3330807364c55"
     sender: "58490e9945f33364ac6cd7b1"
     updateAt: 1481204648654

现在我想过滤“READ”==FALSE AND “SENDER”==58490e9945f33364ac6cd7b1 的结果

我怎样才能做到这一点?

任何帮助将不胜感激 谢谢

编辑:-

我在android中使用这个

Query query = reference.orderByChild("read").equalTo(false)
                .orderByChild("sender").equalTo(datum.getEmployer().getEmployerId());

它给了java.lang.IllegalArgumentException: You can't combine multiple orderBy calls!

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    不幸的是,使用 Firebase 并不简单......在 Firebase 人员的以下视频(大约 9 分钟)https://www.youtube.com/watch?v=sKFLI5FOOHs&list=PLl-K7zZEsYLlP-k-RKFa7RyNPa9_wCH2s&index=4

    【讨论】:

    • 我们不能像这样使用多个orderby Query query = reference.orderByChild("read").equalTo(false) .orderByChild("sender").equalTo(datum.getEmployer().getEmployerId( ));否则它会抛出异常:- java.lang.IllegalArgumentException: You can't combine multiple orderBy calls!
    • 是的,这正是我在上面提到的视频部分所讨论的内容。
    • @JohnO'Reilly 如何获得结果?
    • 不起作用,因为在此视频中显示相同的想法:- Query query = reference.orderByChild("read").equalTo(false) .orderByChild("sender").equalTo(datum.getEmployer() .getEmployerId());
    【解决方案2】:

    firebase 不支持多个 orderbychild() 查询。

    现在我想过滤“READ”==FALSE AND 的结果 “发件人”==58490e9945f33364ac6cd7b1

    在您的数据中创建一个新键,即 READ_SENDER 并合并两者的数据并使用这样的查询 -

    -KYTfJZQbg0RVzHeecIS
         createdAt: 1481204648530
         message: "rgd"
         read: false
         reciever: "583d15cf45f3330807364c55"
         sender: "58490e9945f33364ac6cd7b1"
         read_sender : "false_58490e9945f33364ac6cd7b1"
         updateAt: 1481204648654
    
    
    Query query = reference.orderByChild("read_sender").equalTo("false_"+datum.getEmployer().getEmployerId());
    

    【讨论】:

    • 或者只是将方法public String getReadSender(){return read+"_"+sender;} 添加到Item.class。但是方法应该没有注释@Exclude
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2018-06-11
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 2018-08-04
    相关资源
    最近更新 更多