如何在云功能内访问Firebase数据库?

时间:2018-02-26 18:52:31

标签: javascript firebase firebase-realtime-database google-cloud-functions firebase-admin

在下面的代码中:

exports.sendRequestNotification = functions.database.ref('/Notifications/{notificationid}/longitude').onWrite((event) => {
    const lat = admin.database().ref('/Users/B8r1Xc8cAOVGOiptlFOz45fzxSm1');
    return Promise.all([lat]).then((results) =>{
        const latitud = results[0];
        console.log('hi   ',latitud.data.child('name').val());
    });
});

我正在尝试获取特定用户的名称并将其注销,但它给了我这个错误:

TypeError: Cannot read property 'child' of undefined
at Promise.all.then (/user_code/index.js:60:35)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)

我在这篇文章中尝试了解决方案但它也没有用(Access db data in Cloud Functions for Firebase

有人能帮助我吗?

1 个答案:

答案 0 :(得分:4)

admin.database()。ref()不返回承诺。它只返回一个Reference对象。如果要查询引用位置的数据,请使用其once()方法。 once()返回数据可用时已解决的承诺:

admin.database().ref('/Users/B8r1Xc8cAOVGOiptlFOz45fzxSm1').once('value')
.then(snapshot => {
    // use the object returned here to get the data at the location of the ref
    snapshot.val()
})