Мои настройки Firestore выглядят следующим образом:
match /Profile/{profile}/Sites/{site} {
allow create : if request.auth.uid == profile;
}
Я хочу, чтобы документ создавался только под профилем пользователя! Итак, я ищу что-то подобное, но это не работает, я ожидаю, что идентификатор профиля будет указан выше.
Следующее работает, но тогда он не проверяет, создается ли сайт под этим только для пользователя
allow create : if exists(/databases/$(database)/documents/Profile/$(request.auth.uid));
ОБНОВЛЕНИЕ: Я попробовал следующее условие для документа «создать» в симуляторе, и оно работает там:
Profile/*myUIDHere*/Sites/{site}
Мое правило безопасности, которое работало на симуляторе:
match /Profile/{profile}/Sites/{site} {
allow create : if request.auth.uid == profile;
}
Но он не работает, когда я запускаю код с телефона - я получаю ошибку отсутствия или недостаточных разрешений. Я использую следующий код:
Firestore.instance
.collection('Profile/${currentFirebaseUser.uid}/Sites')
.document(site.uID)
.setData(site.toJson())