Я использую flutter с firebase для сохранения моих изображений, и я использую свое приложение как аутентифицированный пользователь firebase.
Первый вариант использования правил:
rules_version = '2';
firebase.storage service {
match / b / {bucket} / o {
match / {allPaths = **} {
allow read, write: if true;
}
}
}
Здесь для отображения изображений я могу использовать URL-адрес загрузки фотографий, используя:
await ref.getDownloadURL ();
пример: https://firebasestorage.googleapis.com/v0/b/project_name/o/images%2Fimage_name.jpg?alt=media&token=TOKEN Но также я могу использовать прямой URL-адрес фотографии ( без токена ), и он отлично работает. пример: https://firebasestorage.googleapis.com/v0/b/project_name/o/images%2Fimage_name.jpg?alt=media
Второй вариант использования правил:
rules_version = '2';
firebase.storage service {
match / b / {bucket} / o {
match / {allPaths = **} {
allow read, write: if request.auth! = null;
}
}
}
здесь я могу использовать await ref.getDownloadURL ();
, но не могу URL-адрес изображения (жестко закодирован)
Мой вопрос:
почему мы используем правила хранения firebase (если request.auth! = null;), если доступен ref.getDownloadURL ()
даже в частном браузере, и для этого не требуется аутентифицированный пользователь, однако URL-адрес изображения (без токена) недоступен, даже если вы являетесь аутентифицированным пользователем firebase?