我的Firestore数据库中有一个reports
。
在Angular应用中,一次查询只允许获取10个结果:
angularFirestore.collection('reports', ref => ref.limit(10));
按预期,该应用最多可以显示10条结果。
为确保Firestore不允许更大的限制,我编写了以下规则:
match /reports/{reportId} {
allow list: if request.query.limit && request.query.limit <= 10
}
由于某些原因,该应用由于“缺少权限或权限不足”而无法从Firestore获取数据。
为确保问题出在此语句上,我将以下规则更改为:
match /reports/{reportId} {
allow list;
}
它奏效了。
然后,我尝试在“婴儿步骤”中编写此规则,因此我写道:
match /reports/{reportId} {
allow list: if request.query.limit;
}
令人惊讶的是它失败了。现在,我的问题是为什么当我在应用程序中显式编写request.query.limit
时.limit(10)
是一个假值?毕竟,当我写allow list;
时,我会得到10个文档,而且没有更多。
编辑:
即使我编写以下规则,它看起来仍然失败:
match /reports/{reportId} {
allow list: request.query;
}
答案 0 :(得分:0)
docs通过以下示例误导了我:
// Limit documents per request to 50
allow list: if request.query.limit && request.query.limit <= 50
应该只有:
allow list: if request.query.limit <= 50