Где поставить флаг "i" в правилах безопасности Firestore str.matches (regex)? - PullRequest
1 голос
/ 20 января 2020

Я пишу правила безопасности для моего проекта Firebase Firestore, но я не могу найти ссылку, которая иллюстрирует правильный синтаксис для использования match () метода с регулярное выражение в качестве параметра. Вот что я сейчас использую:

request.resource.data.str.matches("^[a-z0-9]+$");

Мой вопрос сейчас, где поставить в выражении нечувствительный к регистру флаг «i»? Я попробовал несколько разных комбинаций, но не сработало.

Спасибо.

1 Ответ

1 голос
/ 20 января 2020

Правила безопасности Firestore следуют за форматом Google RE2 для регулярных выражений.

Это означает, что вы можете определить группу без захвата для вашего соответствия и отметить эту группу для использования без учета регистра соответствие с:

allow write: if request.resource.data.str.matches("(?i:^[a-z0-9]+)$");

Конечно, вы также можете просто расширить группу символов, включив в нее символы ASCII как в верхнем, так и в нижнем регистре:

allow write: if request.resource.data.str.matches("^[a-zA-Z0-9]+$");
...