firebase云功能:通过调用api更新firestore中的字段

时间:2019-05-06 12:33:55

标签: javascript firebase google-cloud-firestore google-cloud-functions

我是云功能和Firestore的新手,我进行了一个练习,其中我必须更新“警报”集合中名为“ Stuttgart”的Firestore文档中的字段。每当警报字段发生更改时,云功能便会触发,调用API并接收当前警报状态。然后,该函数应使用从API调用接收到的布尔值更新Firestore中的警报字段。

我在下面尝试了一些代码,但是我对此没有任何进一步的了解,因此我们将不胜感激

firestore看起来像这样: 警报(集合)->斯图加特(文档)->警报:假(字段)

API调用提供了一个JSON对象:{"alarm":false,"infos":[]}

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
import * as rp from 'request-promise';

admin.initializeApp()
const db = admin.firestore();

export const onAlarmsUpdate = functions.firestore.document('alarms/{alarmId}')
    .onUpdate((change, context) => {

        const options = {
            url: 'h​ttps://api.bitfactory.io/fineparticlesalarm/',
            method: 'GET',
            auth: {
                'user': 'bitfactory',
                'pass': '...'
            },
            json: true
        }

        return rp(options).then(data => {
            console.log(data.alarm)

            db.collection('alarms').doc('stuttgart').set({
                alarm: data.alarm
            })
            .catch(error => {
                console.log('Error writing document: ' + error);
                return false;
            });
        });
});

0 个答案:

没有答案