【发布时间】:2020-11-19 19:26:38
【问题描述】:
我对 Firebase 完全陌生,也许我无法搜索到正确的关键字,但这是我想做的:
我想通过 id 从数据库中读取文档,但前提是该文档具有特定的属性集。更具体地说,这就像一个小型博客服务器,我想在其中读取帖子的数据,但前提是它的“已发布”属性设置为 true。我不希望未发布的帖子最终出现在客户端。
我正在使用 JavaScript SDK,但只能通过 ID 或属性找到查找示例...
这可能吗?
更新: 我现在拥有的是(这是 Firestore):
firebase.firestore().collection('blog-posts').doc(id).get()
然后在客户端检查属性:
if (data && data.published === "true")
我希望所有过滤都发生在服务器端。
【问题讨论】:
-
Firestore 还是实时数据库?您可以发布您当前正在使用的相关代码吗?以下是在 Firestore 中进行复合查询的方法:firebase.google.com/docs/firestore/query-data/…
-
“我不希望未发布的帖子最终出现在客户端。”虽然 Doug 的回答为您提供了编写查询的解决方案,但请注意,用户很容易通过删除第二个 where 子句来阅读未发布的帖子。换句话说,如果您希望未发布的文档“无法找到”(而不仅仅是被查询过滤掉),您应该在查询的同时使用安全规则。
标签: javascript firebase google-cloud-firestore