2017-08-30 91 views
0

我正在開發一個應用程序,該應用程序已經在Firebase中註冊了新的客戶端。我能夠使用FirebaseUI從Firebase中加載RecyclerView中的信息,但我也需要進行搜索。Android - Firebase RecyclerView搜索

但我仍然懷疑如何最好地做到這一點,如果任何人有任何例子,它總是有用的。

我正在考慮使用Retrofit,通過鏈接https://appname-f7ei5.firebase.com/clients得到JSON,它的工作?

或者我需要創建一個RecyclerView.Adapter和一個ViewHolder,但是如何直接從Firebase加載信息?

對於搜索,最好的方法是在適配器中使用getFilter()

+0

這可能是一個重複的問題。嘗試搜索一些:https://www.google.nl/search?q=search+in+firebase+database&rlz=1C1GGRV_enIR756IR756&oq=Search+in+firebase&aqs=chrome.0.0j69i57j69i60j0l2.4616j0j7&sourceid=chrome&ie=UTF-8無論如何,我會給你一些代碼來啓動你所需要的。 – Mohsen

回答

0

這就是我爲了在FireBase數據庫上獲得我的文章標題而做的。嘗試玩(小孩)和orderByChild,你會看到它是如何工作的。換句話說,想象一下child作爲firebase數據庫頭部的根,然後將其摺疊並使用orderByChild來獲取根目錄。

Query queryRef = mReference.child("posts").orderByChild("title").startAt(query).endAt(query + "\uf8ff"); 
        queryRef.addValueEventListener(new ValueEventListener() { 
         @Override 
         public void onDataChange(DataSnapshot dataSnapshot) { 

          if (dataSnapshot.hasChildren()) { 

           for (DataSnapshot postsSnapshot : dataSnapshot.getChildren()) { 
            final Post post = postsSnapshot.getValue(Post.class); 
// and the rest ... 
.. 
.. 
.. 

對你來說,這會是:

Query queryRef = mReference.child("users").orderByChild("username").startAt(query).endAt(query + "\uf8ff"); 

這將通過您的查詢搜索返回用戶的用戶名。