База данных по умолчанию содержит следующий документ:
Код: Выделить всё
users/abcd:
{
companyId: 'efgh'
}
Код: Выделить всё
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function getUserCompany() {
return get(/databases/(default)/documents/users/$(request.auth.uid)).data.companyId;
}
match /co/{cid}/{documents=**} {
allow read, write: if getUserCompany() == cid
}
}
}
Код: Выделить всё
getDoc('/co/efgh/some/document')
Если я проверю этот вызов с помощью Rules Playground, он успешно.
Если я использую тот же набор правил в базе данных (по умолчанию), а затем делаю тот же вызов getDoc() в базе данных (по умолчанию), все будет успешно.< /p>
Он терпит неудачу только тогда, когда пользователь проходит аутентификацию через клиент Firebase Javascript (10.4.0) и получает доступ к базе данных-получателю.
Должны ли подобные правила работать в разных базах данных?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ion-denied
Мобильная версия