Я пытаюсь проверить, является ли входящая строка электронным письмом, поэтому я написал следующие правила безопасности Firestore:
service cloud.firestore {
match /databases/{database}/documents {
match /signups/{uid} {
// RegExp copied from https://www.regextester.com/19
allow create: if newData().email.matches("^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$");
}
}
}
Но когда я разверну его с помощью firebase deploy --only firestore
:
=== Deploying to '[my-project-id]'...
i deploying firestore
i firestore: checking firestore.rules for compilation errors...
i firestore: reading indexes from firestore.indexes.json...
Error: Compilation errors in firestore.rules:
[E] 5:139 - Unexpected '['.
[E] 5:149 - Unexpected ']'.
[E] 5:151 - token recognition error at: '?'
[E] 5:171 - Unexpected '['.
[E] 5:183 - token recognition error at: '?'
[E] 8:1 - Unexpected '}'.
Вот скриншот на консоли Firebase:
https://imgur.com/a/LDTvB2K
Очевидно, строка RegExp заканчивается символом '
(5:73). Как я могу избежать строки в правилах Firestore? Я не могу найти документацию по этой проблеме.