【发布时间】:2017-11-09 13:41:15
【问题描述】:
虽然看起来很简单,但我仍然在努力设置一些基本的 Firestore 规则,这些规则没有按预期工作。
对于下面发布的场景和查询,使用此数据库:
场景 1
无法找出数据库名称?我以为是restaurants,但是在这个假设下,下面的代码不起作用,并得到PERMISSION_DENIED 异常:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if database == "restaurants";
}
}
}
场景 2
Collection Restaurants 有 10 个文件,如上图所示,我已经硬编码了这 10 个文件,并允许它们如下读写,但它不起作用,并且得到相同的 PERMISSION_DENIED 异常:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read : if document in ['2uFMIc2BSH6oslxEABpB','8GMNVxVUb1HzRAk2QmmX',
'AryyMURod8AeWAfBVavF','AvnpKGMeUWDSfowFLpwa','H0qi7gI8WmSVobu19G49',
'H2xhfoj0Rn75BH9nnbuI','NRfgppqWRfj3DtHDlft4','R9gZ0hTxCPXwSeV2prNV',
'YgXXwndeIfZx6rUhdlc4','v22FlL7LBBY851N8sIvQ'] ;
allow write : if document in ['2uFMIc2BSH6oslxEABpB','8GMNVxVUb1HzRAk2QmmX',
'AryyMURod8AeWAfBVavF','AvnpKGMeUWDSfowFLpwa','H0qi7gI8WmSVobu19G49',
'H2xhfoj0Rn75BH9nnbuI','NRfgppqWRfj3DtHDlft4','R9gZ0hTxCPXwSeV2prNV',
'YgXXwndeIfZx6rUhdlc4','v22FlL7LBBY851N8sIvQ'] ;
}
}
}
这2个可能不是很实际的场景,但更适合我的理解。
【问题讨论】:
标签: firebase firebase-security google-cloud-firestore