Облачная функция пожарного депо, которая дублирует данные - PullRequest
0 голосов
/ 29 апреля 2020

Я знаю, что обычно мы должны что-то предоставлять, но на самом деле я теряюсь из-за функции в firebase, я пытаюсь делать функцию, которая каждый месяц получает данные из поля в документе firebase, и с этим создаю новый документ с идентификатором пользователя и данными в другой таблице. Возможно ли это, кто-то знает, как достичь и понять?

 export const helloWorld = functions.https.onRequest((request, response) => {
  try {
    db.collection('users').get()
    .then(function(querySnapshot: any[]) {
        querySnapshot.forEach(function(doc) {
            const user = doc.id;
            const conso = doc.data().conso_co2;
            db.doc("historic"+user).add({
                    consommation: conso,
                    date: new Date()
                })

        });
    })
    .catch(function(error: any) {
        console.log("Error getting documents: ", error);
    });
  }catch(error) {
      console.log("Error getting document:", error);
  }
  response.send("Hello from Firebase!");
});

Я поставил триггер Http, чтобы упростить отладку

1 Ответ

0 голосов
/ 29 апреля 2020

Я считаю, что модификация этого должна выполнить sh то, что вы пытаетесь выполнить, если не сообщите мне в комментариях, и я смогу поработать с вами над этим.

Ваша модифицированная версия этого метода должна позволять вам

  1. Запускать в полночь первого дня месяца
  2. Получение данных из данного документа
  3. Используйте эти данные для создания другого документа в другом месте
exports.scheduledFunctionCrontab = functions.pubsub
    .schedule("0 0 1 * *")
    .timeZone("Europe/Paris")
    .onRun(context => {
        try {
            const sfDoc = db.collection("cities").doc("SF");
            const doc = await sfDoc.get();
            if (doc.exists) {
                const data = doc.data()
                const laDoc = db.collection("cities").doc("LA");
                await laDoc.set({
                    name: "Los Angeles",
                    state: "CA",
                    country: "USA",
                    newData: data
                })
            }
        }  
        catch(error) {
            console.log("Error getting document:", error);

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