【问题标题】:How apply sql query to Firebase in Xamarin Android?如何将 sql 查询应用于 Xamarin Android 中的 Firebase?
【发布时间】:2018-04-08 10:02:16
【问题描述】:

我需要从 Firebase 获取返回数据。在 Sql 查询中它会是这样的:

Select * from * Group By field1, field2 HAVING count(*)=1

如何将上述应用到 Xamarin Android 中的 FireBase。所以我有节点“聊天”,在这里我只想检索记录,而不是在字段“user_email”上重复:

chats
 |-...
   |---date_and_time:
   |---user_email:
 |-...
   |---date_and_time:
   |---user_email:
 ... 

此时我从“聊天”中获取全部数据,这里是代码:

public List<MessageContent> listOfContacts = new List<MessageContent>();
FirebaseClient firebase;
...
firebase = new FirebaseClient(GetString(Resource.String.database_name));
...
var firebaseContacts = await firebase.Child("chats")
                                                 .OnceAsync<MessageContent>();
            foreach (var item in firebaseContacts)
                listOfContacts.Add(item.Object);  

【问题讨论】:

标签: android firebase firebase-realtime-database xamarin.ios


【解决方案1】:

Firebase 的实时数据库是一个 NoSQL 数据库。尝试直接将 SQL 查询映射到它会给您带来麻烦。我强烈推荐阅读NoSQL data modeling 和观看Firebase for SQL developers

在 NoSQL 数据库中,您通常会获得更复杂的写入操作,并反过来获得更高性能/可扩展的读取操作。因此,在您的情况下,这可能意味着您实际上存储了一个您尝试查询的记录列表,并在每次写入时更新该列表。

之前处理类似场景的一些问题可以在this list找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    相关资源
    最近更新 更多