开发者问题收集

使用触发器向 Firebase 实时数据库添加元素

2019-04-21
60

我正在使用 firebase cloud 函数,当数据库中创建字段时触发数据库更新。

exports.dbTest2 = functions.database.ref('/{uid}/ignore')
    .onCreate((snapshot, context) => {

        const uid = context.params.uid
        console.log(`Current User ${uid}`)

        // Data added at the location
        const ignoreData = snapshot.val()
        const endTime = new Date(ignoreData.endTime).toString()


        // ref matches `/{uid}/ignore`
        return snapshot.ref.parent.child('schedule').set({

                allDay: false,
                endDate: new Date().toString(),
                id: 100,
                startDate: new Date().toString(),
                title: 'test'

         })

    });

当我将 ignore 添加到实时数据库时,会触发此函数。触发后,它如下所示:

enter image description here

但是,我希望 ignore 是一个类似数组的结构,该结构具有索引,每个索引都包含对象。像这样的东西:

我也尝试了类似 return snapper.ref.parent.child('schedule').child().set(...

但没有起作用,因为 child() 需要一个参数。

有什么帮助吗?

1个回答

您可以简单地传递一个包含对象的数组:

 return snapshot.ref.parent.child('schedule').set(
  [
    {
        allDay: false,
        endDate: new Date().toString(),
        id: 100,
        startDate: new Date().toString(),
        title: 'test1'
    },
    {
        allDay: false,
        endDate: new Date().toString(),
        id: 101,
        startDate: new Date().toString(),
        title: 'test2'
    }
  ]
 );

它在我的 firebase 中的样子(照片作为数组传递): firebase collection

Ilarion Halushka
2019-04-21