【问题标题】:Filter result from firebase ObservableCollection过滤来自 firebase ObservableCollection 的结果
【发布时间】:2021-03-06 00:47:07
【问题描述】:

我正在尝试在我的 Xamarin 应用中过滤来自 FirebaseDB 的记录。

以下代码返回数据库中的所有记录:

internal ObservableCollection<MessageModel> GetMessages(Guid messageId)
{
 var result = (firebase).Child("Messages").AsObservable<MessageModel>().AsObservableCollection();

 return result;
}

但是当我应用 Where 它返回 0 个记录事件时,表明我在 DB 中有与 MessageId 匹配的记录

internal ObservableCollection<MessageModel> GetMessages(Guid messageId)
    {
        var result = (firebase).Child("Messages").AsObservable<MessageModel>().AsObservableCollection().Where(s => s.Id == messageId); ;

        return new ObservableCollection<MessageModel>(result);
    }

【问题讨论】:

  • 有什么更新吗?

标签: firebase xamarin xamarin.forms


【解决方案1】:

我建议你可以使用以下代码从firebase查询数据。

 public async Task<List<Person>> GetAllPersons()
    {

        return (await firebase
          .Child("Persons")
          .OnceAsync<Person>()).Select(item => new Person
          {
              Name = item.Object.Name,
              PersonId = item.Object.PersonId
          }).ToList();
    }

  public async Task<Person> GetPerson(int personId)
    {
        var allPersons = await GetAllPersons();
        await firebase
          .Child("Persons")
          .OnceAsync<Person>();
        return allPersons.Where(a => a.PersonId == personId).FirstOrDefault();
    }

 public class Person
{
    public int PersonId { get; set; }
    public string Name { get; set; }
}

【讨论】:

  • @Eldlabs 有什么更新吗?请为我的回复提供一些反馈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-14
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 2017-04-07
  • 1970-01-01
相关资源
最近更新 更多