Я пытаюсь создать приложение диспетчера хранилища для Firebase Storage в React.
Приложение должно иметь возможность перечислять/добавлять/удалять сегменты и файлы внутри них.
Я настроил initializeApp
следующим образом
import firebase from 'firebase';
import 'firebase/auth';
import 'firebase/storage';
firebase.initializeApp({
apiKey: 'xxxxxxxxxxxxxxxxxxxx',
authDomain: 'buckettest-xxxxx.firebaseapp.com',
projectId: 'buckettest-xxxxx',
storageBucket: 'buckettest-xxxxx.appspot.com',
messagingSenderId: 'xxxxxxxxxxxxxxxxxxxx',
appId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
measurementId: 'G-QZDBHEWHJ5',
});
const auth = firebase.auth();
const storage = firebase.storage();
Все идет нормально. Конфиг работает, storage
подключен к хранилищу из конфига storageBucket: 'buckettest-xxxxx.appspot.com',
Функции загрузки, скачивания, просмотра, удаления работают идеально.
Проблема в том, что если я переключаюсь на другое ведро из своего приложения, объект storage
все еще привязан к buckettest-xxxxx.appspot.com
из конфигурации.
Как я могу изменить сегмент, чтобы я мог загружать данные и в другие сегменты?
Предположим, у меня есть следующий список сегментов:
Как я могу переключить объект storage
, чтобы использовать buckettest-zzzzz.appspot.com
после инициализации?
Спасибо
Вероятно, самый простой способ — создать новый объект FirebaseApp
, инициализированный новым сегментом, а затем получить от него сервис storage()
.
var otherApp = firebase.initializeApp({
storageBucket: 'otherbucket.appspot.com',
}, second);
var otherStorage = otherApp.storage();
«в какой-то момент» Эти объекты довольно легкие. Если бы вы не создали десятки тысяч из них, я бы не беспокоился об этом.
Спасибо за информацию. У меня также есть дополнительный вопрос относительно аутентификации между приложениями... может быть, вы можете посмотреть здесь stackoverflow.com/questions/65287720/…
Я думал об этом, но, учитывая тот факт, что я могу создавать сегменты, удалять их и т. д., создание большего количества приложений fireBaseApp в какой-то момент может стать проблемой с памятью? Может быть, есть способ уничтожить эти экземпляры?