Я пытаюсь получить данные из другой таблицы, используя облачную функцию, и она сообщает, что снимок равен нулю.
У меня есть база данных 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'
и когда я пытаюсь просто записать снимок в консоль, он говорит мне, что он нулевой.
Я не вижу, что я здесь сделал неправильно, но уверен, что он маленький и простой.
Спасибо, что нашли время, чтобы прочитать этот бессмысленный беспорядок.