Google cloud firestore 将Restric firestore CRUD发送给特定域内的用户
我正试图在Firestore中创建一个规则,将属于特定域的用户的所有CRUD操作的使用限制在该规则中,我的问题是规则上下文中似乎不存在contains子句 这是我的规则:Google cloud firestore 将Restric firestore CRUD发送给特定域内的用户,google-cloud-firestore,Google Cloud Firestore,我正试图在Firestore中创建一个规则,将属于特定域的用户的所有CRUD操作的使用限制在该规则中,我的问题是规则上下文中似乎不存在contains子句 这是我的规则: service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if isUserAndSignedIn(); } } functio
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if isUserAndSignedIn();
}
}
function isUserAndSignedIn(){
return request.auth != null && request.auth.token.email.contains('domain.com')
}
}
我得到的错误是:
错误:simulator.rules行[9],列[36]。未找到函数错误:名称:[包含]
我也试过用indexOf之类的工具
request.auth.token.email.indexOf('domain.com')=-1.
request.auth.token.email.endsWith('domain.com')
request.auth.token.email
将是一个字符串,并且该字符串没有名为“contains”的方法。它确实有一个使用正则表达式的方法,您可以看到文档中有一些方便的示例代码:
'user@domain.com'.matches('.*@domain[.]com') == true
您应该能够适应您的情况:
return request.auth != null && request.auth.token.email.matches('.*@domain[.]com')
我现在正在看确切的文档,我想是同样的方法,谢谢!