Сохранение данных в firestore из облачной функции Google

#google-cloud-firestore #google-cloud-functions #iot

#google-cloud-firestore #google-cloud-функции #iot

Вопрос:

Я новичок в IOT и firestore.

Я пытаюсь сохранить данные в firestore с помощью облачной функции (MQTT).

Ниже приведен код:

 exports.helloPubSub = (event, callback) => {

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firestore);

const db = admin.firestore()
//admin.initializeApp();
console.log("Start");

  var docRef = db.collection('users').doc('alovelace');

var setAda = docRef.set({
  first: 'Ada',
  last: 'Lovelace',
  born: 1815
});
};
  

Я получаю следующие ошибки в журналах просмотра :

«Выполнение функции заняло 22 мс, завершено со статусом: «ошибка»»

Есть предложения

Также после некоторых изменений я получаю ошибку — Ошибка: переменные конфигурации Firebase недоступны. Пожалуйста, используйте последнюю версию командной строки Firebase для развертывания этой функции

Мой package.json — это

 {
"name": "functions",
"description": "Cloud Functions for Firebase",
"dependencies": {
"@google-cloud/vision": "^0.12.0",
"async": "^2.5.0",
"consolidate": "^0.14.5",
"express": "^4.15.4",
"firebase-admin": "^5.4.0",
"firebase-functions": "^0.7.0",  
"firebase-tools": "3.15.4",  
"handlebars": "^4.0.10",
"jquery": "^3.2.1",
"js-levenshtein": "^1.1.3",
"json-query": "^2.2.2"
},
"private": true
}
  

Ответ №1:

Поскольку вы получаете следующее сообщение об ошибке

Ошибка: переменные конфигурации Firebase недоступны. Пожалуйста, используйте последнюю версию командной строки Firebase для развертывания этой функции

Вам необходимо обновить firebase CLI для развертывания облачной функции

npm i -сохранить firebase-функции@latest

В firebase-tools@3.17.x для этого требуется, чтобы ваш проект обновил firebase-функции до последней версии.

Однако для firebase-functions@latest также требуется firebase-admin@latest (на момент написания этого ответа firebase-admin@5.11.0 . Как только все пакеты будут обновлены, эта проблема должна быть решена.

Другой альтернативой является понижение версии global firebase-tools до версии 3.16.0, которая позволяет использовать более старые firebase-функции и пакеты firebase-admin.