Я использую комбинацию аутентификации firebase, облачного хранилища и облачного хранилища.
Во время разработки я использую эмулятор firestore для проверки работы. Очень эффективно использовать эмулятор с firestore.
Поскольку аутентификация и хранилище не поддерживаются, среда несколько уникальна.
При входе в систему с аутентификацией на сервере firebase firestore обращается к локальному эмулятору данные и облачное хранилище относятся к внутренним данным firebase.
В этом сценарии учетные данные не добавляются при доступе к облачному хранилищу.
В моем коде приложения (флаттер) я переключаю эмулятор и firebase backend с флагом.
if (debug) {
final domain = (!kIsWeb && Platform.isAndroid) ? '10.0.2.2' : 'localhost';
await Firestore.instance.settings(
persistenceEnabled: false,
host: '$domain:8080',
sslEnabled: false,
);
}
и в storage.rules я просто проверяю, если request.aut! = null.
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null; // ok with if true;
}
}
}
Я могу читать и записывать файл в облачном хранилище с debug = false, но не удалось с debug = true.
И я могу читать и писать, когда меняю storage.rules, чтобы разрешить все чтение и запись.
Есть ли эффективный способ отладки правила безопасности облачного хранилища в среде, подобной описанной выше, или другим способом?