При попытке получить данные из другой таблицы снимок равен нулю - PullRequest
1 голос
/ 13 июня 2019

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

У меня есть база данных Firebase, к которой подключены некоторые устройства IoT. Они обновляют свои соответствующие таблицы (я надеюсь, что это правильное слово) в базе данных (device_001, device_002, device_003) и отправляют данные на внешний API, который я использую, что отлично работает. Теперь мне нужно заставить устройства искать, где они находятся, я настроил еще одну таблицу, в каждой из которых есть их идентификатор, местоположение и метка времени.

Структура таблицы поиска:

devices
    device_001
        id: ...
        location: ...
        timestamp: ...

Код:

exports.devices_Listener = functions.database.ref('/devices/{deviceId}/{entryId}').onWrite(snapshot => { 
    object = snapshot.after.val();
    getCurrentLocation();
    process();
    return null
})

function getCurrentLocation() {    functions.database.ref('locations/{deviceId}').limitToLast(1).once('value').then(function(snapshot) {
        var o = snapshot.val();
    })
}

Я ожидал, что это получит моментальный снимок и позволит мне получить местоположение, чтобы я мог сохранить его с обработанными данными (это все работает, поэтому здесь не включено). Когда я пытаюсь получить поле местоположения, я не могу прочитать свойство 'location' и когда я пытаюсь просто записать снимок в консоль, он говорит мне, что он нулевой.

Я не вижу, что я здесь сделал неправильно, но уверен, что он маленький и простой.

Спасибо, что нашли время, чтобы прочитать этот бессмысленный беспорядок.

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