2017-10-26 11 views
-1

Firebaseから返品データを取得する必要があります。 SQLクエリでは、次のようになります。Xamarin Androidの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); 
+0

[FirebaseデータベースのSQL](https://stackoverflow.com/questions/42222347/firebase-database-in-sql)の可能な複製 – cutiko

答えて

0

FirebaseのリアルタイムデータベースはNoSQLデータベースです。 SQLクエリを直接それにマップしようとすると、あなたに荒い時間を与えるでしょう。 NoSQL data modelingを読んで、Firebase for SQL developersをご覧になることを強くお勧めします。

通常、NoSQLデータベースでは、より複雑な書き込み操作が行われ、代わりに、よりパフォーマンス/スケーラブルな読み取り操作が行われます。あなたのケースでは、それは実際にあなたが照会しようとしているレコードのリストを格納し、そのリストをすべての書き込みで更新することを意味する可能性があります。

類似のシナリオを扱う前述の質問のいくつかは、this listに記載されています。

関連する問題