Я боролся с отсутствием документации для Xamarin / Firebase. Мне нужна помощь по AsObservable, Subscribe и LimitToLast (). У меня работает первое препятствие:
FirebaseHelper.cs
using Firebase.Database;
using Firebase.Database.Query;
using PelletPirate.Models;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
namespace PelletPirate.Services
{
public class FirebaseHelper
{
FirebaseClient firebase = new FirebaseClient("https://temps.firebaseio.com/");
private readonly string ChildTemp = "ControllerData/Controller/Temps";
public Task<Temperature> GetTemps()
{
firebase.Child(ChildTemp).AsObservable<Temperature>().Subscribe(temps =>
{
System.Diagnostics.Debug.WriteLine("GetTemps - Subscribe temps: [" + temps.Object.TT + "]");
});
return null;
}
}
}
Я получаю свои 4 температуры из Firebase, и если я сделаю ЛЮБЫЕ изменения в данных Firebase , Я получаю обновленную запись вывода, так что наблюдаемая подписка работает.
[0:] GetTemps - Subscribe temps: [225]
[0:] GetTemps - Subscribe temps: [200]
[0:] GetTemps - Subscribe temps: [225]
[0:] GetTemps - Subscribe temps: [605]
Goo Deal, но я хочу прослушать OnChanges и получить самую последнюю (последнюю) температуру, добавленную с помощью LimitToLast (). Вот где я в замешательстве и не могу найти никакой ссылки на Xamarin Firebase о том, как настроить
firebase.LimitToLast(1).on('child_added, (snap) => { *...assign snap stuff here...* });
Я могу сделать это легко в Angular TypeScript, но, похоже, не могу переведите это на Xamarin C#
getLastTemps(controller)
{
const Ref = this.firebase.database.ref('ControllerData/' + controller + '/Temps');
Ref.limitToLast(1).on('child_added', (snap) =>
{
... do some action with snap actions/assignments object here...
});
}
Любая справка по коду Xamarin Firebase или справочный пример или для хороших документов будет принята с благодарностью. Спасибо за ваше время, чтобы прочитать это далеко.
brbeardm