database - 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=1
和receiverID=30
。
对于 MySQL,这就是我将如何编写此查询的方式。
SELECT * FROM messages WHERE senderID="1" AND receiverID="30"
我怎样才能在 Firebase 中做同样的事情?
注意:我知道我可以下载所有记录并进行搜索。但我不想将数百万条记录下载到手机中并造成性能问题。此外,我不想将每个人的数据下载到每个人的手机中并制造一个巨大的安全漏洞。
解决方案
推荐阅读
- python-3.x - 将大量数据(字典)转换为表格
- javascript - 当我使用@react-google-maps/api 时,为什么 react-select 会中断?
- python - 我的 SPSA(同时扰动随机近似优化器)的实现有什么问题?
- r - 从 markdown 到 Word 的表格看起来没有格式化
- jupyter-notebook - jupyter nbconvert 命令运行良好,而“下载为”菜单命令导致错误“在 PATH 上找不到 xelatex”
- c++ - Trie数据结构的实现
- python - 对具有不确定性的两个数据点进行线性拟合的置信区间
- sql - NTILE SQL 存储桶只有 4 个匹配而不是 2
- azure - 创建生成管道后生成错误 - Azure Devops
- c++ - 将类实例添加到 C++ 中的对象层次结构中的问题