Невозможно сохранить данные в Firestore с помощью облачной функции Google - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь добавить запись в базу данных firestore каждый раз, когда выполняется облачная функция, но функция добавляет одну запись в базу данных только тогда, когда измененный код развернут и когда функция выполняется позже, она ничего не добавляет, Вот код, который я использую, я не знаю Node.js, использую его впервые. Пожалуйста, помогите и укажите, что не так с кодом и как его можно изменить, чтобы добавить новую строку в каждый HTTP-запрос к облачной функции Google.

/**
 * Responds to any HTTP request.
 *
 * @param {!express:Request} req HTTP request context.
 * @param {!express:Response} res HTTP response context.
 */

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

admin.initializeApp(functions.config().firebase);

 let db = admin.firestore();
let FieldValue = require('firebase-admin').firestore.FieldValue;
let data = {
  name: 'Los Angeles',
  state: 'CA',
  country: 'USA',
  timestamp: FieldValue.serverTimestamp()
};
let result ="success";
(async () => {
// Add a new document in collection "cities" with ID 'LA'
let setDoc = await db.collection('cities').add(data).then((cityRef) => {
  cityRef.get()
    .then(doc => { result = "SUCC";/* do stuff */ })
    .catch(err => { result = "FAI";/* error! */ });
});
})();

exports.helloWorld = (req, res) => {
 
  let message = req.query.message || req.body.message || 'Hello World!-' || result || setDoc;
  res.status(200).send(message);
};

1 Ответ

1 голос
/ 12 апреля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...