Я использую Firebase для некоторых проектов, и мне очень нравится эта платформа.
Я просто наткнулся на вещь, которую я не мог сделать, и мне было интересно, есть ли способ достичь этого или есть ли альтернативный способ сделать это.
Что я пытаюсь сделать, так это создать функцию для извлечения последних X записей из моей базы данных Firebase и возврата данных в вызывающую функцию.
Что-то вроде этого:
function getTwoLatestLocations()
{
var twoLocations;
myFirebaseRef.limitToLast(2).once('value', function (dataSnapshot) {
twoLocations = dataSnapshot.val();
}, function (errorObject) {
// code to handle read error
console.log("The read failed: " + errorObject.code);
});
return twoLocations;
}
И затем вызывая это так:
function someCalcutationsWithTheTwoLastLocations()
{
var twoLastLocations = getTwoLatestLocations();
// Do some calculations
}
Но, как вы могли догадаться, вызов ссылки на базу данных является асинхронным, поэтому возвращаемый объект всегда будет неопределенным.
Есть ли способ сделать это элегантно, чтобы я мог разделить методы?
P.S. В настоящее время весь мой код находится просто внутри вызова базы данных. Уродливый.