Как отключить эмулятор Firebase Storage?

Когда я запускаю эмуляторы, эмулятор хранилища запускается и доступен по адресу localhost:9199.
Затем я получаю доступ к хранилищу с помощью SDK администратора в node.js с помощью:

serviceAccountKey = require('./serviceAccountKey.json');
const config = {
  credential: admin.credential.cert(serviceAccountKey),
};
const adminApp = admin.initializeApp(config);
const storage = adminApp.storage();

Теперь хранилище указывает на эмулятор, а не на реальную службу, как до того, как этот эмулятор был реализован.
Как я могу получить доступ к реальной службе?
Я попытался установить projectId и переменную env, как описано здесь, но это не работает.


person Louis Coulet    schedule 22.07.2021    source источник


Ответы (2)


Запуск firebase emulators:start запустит все службы в эмулированном состоянии. Если вы хотите поговорить с производственной службой, вы можете запустить firebase serve, или, если вы хотите эмулировать некоторые службы, но не хранилище, вы можете запустить firebase serve --only {services,to,emulate} (например, firebase serve --only functions,hosting. Это будет эмулировать функции и хостинг, но любой вызов хранилища (или аутентификации или других неэмулируемых служб) будет обращаться к живой среде Firebase.

person I'm Joe Too    schedule 23.07.2021
comment
Спасибо за ваш ответ, но я бы предпочел продолжать использовать emulators вместо serve, потому что последний кажется устаревшим и эмулирует только хостинг и функции, запускаемые HTTP-запросами. Кроме того, пока хранилище не было добавлено в набор эмуляторов, команда emulators:start запускала только службы, перечисленные в firebase.json. - person Louis Coulet; 23.07.2021

Итак, можно просто запустить все службы, кроме storage, из командной строки, а не из firebase.json, следующим образом:

firebase emulators:start --only hosting,functions,firestore,auth,ui
person Louis Coulet    schedule 23.07.2021