Как получить доступ к базе данных Firebase внутри облачной функции?

В приведенном ниже коде:

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)

Я попробовал решение в этом сообщении, и оно тоже не сработало (Доступ db в Cloud Functions for Firebase)

Может кто-то мне помочь, пожалуйста?


person Mustafa Alawami    schedule 26.02.2018    source источник


Ответы (1)


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()
})
person Doug Stevenson    schedule 26.02.2018