Functions.config (). firebase.apiKey не определен

У меня есть облачная функция, которая переводит текст с помощью API Google Translate. Он использует этот фрагмент кода:

const functions = require('firebase-functions');

function createTranslateUrl(lang, text) {
  return `https://www.googleapis.com/language/translate/v2?key=${functions.config().firebase.apiKey}&source=en&target=${lang}&q=${text}`;
}

Проблема в части functions.config().firebase.apiKey. Некоторое время работал нормально, но вдруг начал возвращать undefined.

Вот как сейчас выглядит конфиг:

  config { firebase: 
   { projectId: 'projectname',
     databaseURL: 'https://projectname.firebaseio.com',
     storageBucket: 'projectname.appspot.com',
     credential: ApplicationDefaultCredential { credential_: MetadataServiceCredential {} } } }

Я жестко запрограммировал apiKey, скопировав его с консоли firebase, и пока он работает нормально.

Мои вопросы: безопасно ли использовать жестко запрограммированный ключ API? И что может привести к тому, что functions.config().firebase.apiKey вернет undefined?

Почему бы вам не использовать API узла Translate вместо прямого вызова конечной точки HTTP? Это намного проще. cloud.google.com/translate/docs/reference/…

Doug Stevenson 15.03.2018 17:08

Спасибо, @DougStevenson! Я проверю это. Просто нашел решение выше где-то в примерах Google для облачных функций. Думал, это правильный путь.

AlexKost 16.03.2018 01:54
Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
0
2
1 474
2

Ответы 2

Удачи с этим? У меня точно такая же проблема, когда functions.config().firebase.apiKey возвращает undefined.

Это началось после моего вчерашнего развертывания. Я проверил примечания к выпуску firebase, но ничего, связанного с конфигурацией, там не было.

ОБНОВЛЕНИЕ: Оказывается, мы использовали старую версию firebase-functions. При обновлении до последней версии (0.9.1) исправлены проблемы.

firebase.apiKey был сброшен с functions.config()

См. Также эту проблему на github https://github.com/firebase/firebase-functions/issues/196

Другие вопросы по теме

Это хорошая идея использовать admin.database (). Ref (). On ('child_added') в облачных функциях?
Не удается отправить уведомление в Google Assistant (целевое намерение не является допустимым обновляемым намерением)
Как избежать возможного состояния гонки с помощью облачных функций firebase?
APN - Ошибка при отправке уведомления об обновлении в фоновом режиме с помощью FCM
Разобрать HTTP-ответ от fixer.io в node.js
Могу ли я сгенерировать токен идентификатора с помощью FirebaseAuth без вошедшего в систему пользователя?
Удалить документ со всеми вложенными коллекциями и вложенными вложенными коллекциями в Firestore
Можете ли вы использовать функции firebase при выполнении CI с токеном?
У меня есть функция GCP, которая загружает файлы .CSV из облачного хранилища, мне нужно, чтобы она не добавляла ничего, кроме файлов .CSV
Проверить список пользователей, вышедших в коллекцию пользователей Firestore из облачной функции