Google cloud firestore 将Restric firestore CRUD发送给特定域内的用户

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

我正试图在Firestore中创建一个规则,将属于特定域的用户的所有CRUD操作的使用限制在该规则中,我的问题是规则上下文中似乎不存在contains子句

这是我的规则:

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')

我现在正在看确切的文档,我想是同样的方法,谢谢!