Próbuję zrozumieć, jak tokeny działają w Firebase Storage.Omówienie tokenów magazynu Firebase
Zawsze, gdy moja aplikacja internetowa przesyła obraz do FS, dodaje token do swojego publicznego adresu URL. Problem polega na tym, że gdy przesyłasz ten sam plik obrazu do innej części aplikacji internetowej, wydaje się, że nie dostajesz innego pliku, ale innego tokenu dla pliku URL, który został już przesłany, powodując błąd 403 dla poprzedniego zarejestrowany obraz.
Czy istnieje sposób rozwiązania tego problemu?
Przykład:
storageRef.put(picture.jpg);
uploadTask.snapshot.downloadURL
// returns something like https://firebasestorage.googleapis.com/v0/b/<your-app>/o/picture.jpg?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e
tego adresu URL jest następnie wyświetlany gdzieś wewnątrz img src.
<img src="https://firebasestorage.googleapis.com/v0/b/<your-app>/o/picture.jpg?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e">
Jeśli użytkownik powtarza ten proces i przesyła tę samą picture.jpg w innej części aplikacji, zamiast się nowy egzemplarz w Firebase magazynowe, plik jest nadpisywany z adresu URL kończącego się na nowy dowód ; powiedzieć 12345.
Więc:
<img src="https://...picture.jpg?alt=media&token=12345"> // New upload renders fine
<img src="https://...picture.jpg?alt=media&token=09cb2927-4706..."> // But old upload breaks because of wrong url
Stosować lokalne buforowanie obrazów –
Jest to aplikacja internetowa, każdy obraz musi mieć własny adres URL, nawet jeśli plik jest taka sama. – cerealex
Przepraszam, myślałem, że to aplikacja mobilna –