首页 > 解决方案 > Flutter:如何在 Firebase 数据库上执行多重过滤?

问题描述

我正在开发一个颤振应用程序,使用Firebase Database. 下面是我的数据库结构,只有一张表

在此处输入图像描述

下面是我用于检索数据的 Flutter 查询

final reference = FirebaseDatabase.instance.reference().child('messages');

new Flexible(
    child: new FirebaseAnimatedList(
    query: reference,
    padding: const EdgeInsets.all(8.0),
    reverse: true,
    sort: (a, b) => b.key.compareTo(a.key),
    //comparing timestamp of messages to check which one would appear first
    itemBuilder: (_, DataSnapshot snapshot,
           Animation<double> animation, int x) {
           return new ChatMessageListItem(
           messageSnapshot: snapshot,
           animation: animation,);
           }
     ),
    ),

现在,我的代码从数据库中下载所有记录。但我想要的是下载符合特定条件的记录。条件是senderID=1receiverID=30

对于 MySQL,这就是我将如何编写此查询的方式。

SELECT * FROM messages WHERE senderID="1" AND receiverID="30"

我怎样才能在 Firebase 中做同样的事情?

注意:我知道我可以下载所有记录并进行搜索。但我不想将数百万条记录下载到手机中并造成性能问题。此外,我不想将每个人的数据下载到每个人的手机中并制造一个巨大的安全漏洞。

标签: databasefirebaseflutterfirebase-realtime-databaseflutter-dependencies

解决方案


推荐阅读