繁体   English   中英

Firebase Firestore 仅允许用户在有过滤器的情况下查询集合

[英]Firebase Firestore only allow user to query a collection if there is a filter

我正在尝试创建一个 Firestore 规则,该规则只允许用户列出他们正在过滤字段的集合中的文档。

 // would fail: db.collection('documents').get(); // would succeed: db.collection('documents').where('fieldId', '==', 123456).get();

有没有办法通过 Firestore 规则来实现这一点?

我能想到的唯一方法是使用基于查询的规则

像这样的东西:

allow read: if resource.fieldId.published == 123456;

但我不认为有办法只要求他们过滤fieldId ,无论价值是什么。

有趣的,这可以通过实时数据库安全规则实现,它有一个单独query.orderByChild子句

我认为这听起来像是一个合理的功能,所以我建议你提交一个功能请求 它现在或任何附近的功能都对您没有帮助,但是...谁知道呢。

我得到了它的工作

allow list: if int(resource.data.fieldId) > 100000000000000000;

因为所有的 id 都超过 100000000000000000。现在尝试列出一个没有.where('fieldId', '==', someId) 的集合被拒绝。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM