2016-05-31 1 views
0

Ich verwende den Firebase Recycler-Adapter von Firebaseui, um Werte aus Datenbanken anzuzeigen.
Hier ist mein Code Wert aus der Datenbank für DatenbankWerte können nicht aus der Firebase-Datenbank abgerufen werden

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mRef = FirebaseDatabase.getInstance().getReference(); 

    listRef =mRef.child("itemlist"); 


    recyclerView = (RecyclerView) findViewById(R.id.recyclerView); 
    recyclerViewLayoutManager = new LinearLayoutManager(this); 
    recyclerView.setHasFixedSize(false); 
    recyclerView.setLayoutManager(recyclerViewLayoutManager); 

    recyclerView.addOnItemTouchListener(
      new RecyclerItemClickListener(MainActivity.this, recyclerView, new RecyclerItemClickListener.OnItemClickListener() { 
       @Override 
       public void onItemClick(View childView, int position) { 
        Log.v(TAG,"YouClickon"+ position); 


       } 
      }){ 

      } 
    ); 
} 

@Override 
protected void onStart() { 
    super.onStart(); 

    attachRecyclerViewAdapter(); 

} 

@Override 
protected void onStop() { 
    super.onStop(); 

    if(mRecyclerViewAdapter != null){ 
     mRecyclerViewAdapter.cleanup(); 
    } 
} 

private void attachRecyclerViewAdapter() { 

    mRecyclerViewAdapter = new FirebaseRecyclerAdapter<ItemList, ItemHolder>(
      ItemList.class, 
      R.layout.shop_recycler_row_view, 
      ItemHolder.class, 
      listRef 
    ) { 
     @Override 
     protected void populateViewHolder(ItemHolder itemHolder, ItemList item, int i) { 
      itemHolder.setName(item.getName()); 
      itemHolder.setDescription(item.getDescription()); 
     } 
    }; 

    recyclerView.setAdapter(mRecyclerViewAdapter); 
} 


public static class ItemHolder extends RecyclerView.ViewHolder{ 
    View mView; 

    public ItemHolder(View itemView) { 
     super(itemView); 
     mView = itemView; 
    } 

    public void setName(String name){ 
     TextView field = (TextView) mView.findViewById(R.id.tv_shopName); 
     field.setText(name); 
    } 

    public void setDescription(String text) { 
     TextView field = (TextView) mView.findViewById(R.id.tv_shopDesc); 
     field.setText(text); 
    } 



} 

Die json Struktur zu holen, wie unten angegeben:

{ 
"itemlist" : { 
"-KJ5USfIBXgAfpurhHjE" : { 
    "-KJ5Uf0XkahJ5fqio8kq" : { 
    "description" : "Minal", 
    "img_url" : "HIU", 
    "name" : "Milan ni item" 
    }, 
    "-KJ5Ul7ZT2oKuCLxOY78" : { 
    "description" : "nathi kevi😷😷", 
    "img_url" : "HIU", 
    "name" : "mari item" 
    } 
}, 
"-KJ5VJtTUQqKnHmuu1tY" : { 
    "-KJ5d7aggDnYKz65PMHa" : { 
    "description" : "whaajakakq", 
    "img_url" : "HIU", 
    "name" : "Sweet" 
    } 
} 
}, 
"shoplist" : { 
"-KJ5USfIBXgAfpurhHjE" : { 
    "description" : "Milan ne Maru mane aaje muki ne chalya gaya fir ek baar", 
    "img_url" : "https://firebasestorage.googleapis.com/v0/b/fooder-5eba6.appspot.com/o/shop_images%2Fimage%3A26208?alt=media&token=75228031-dccd-4c45-bfcf-abe634d58bc6", 
    "name" : "31st May 2016" 
}, 
"-KJ5Uy4ALcLcJhKH6o9U" : { 
    "description" : "shop bhavnagar", 
    "img_url" : "https://firebasestorage.googleapis.com/v0/b/fooder-5eba6.appspot.com/o/shop_images%2Fimage%3A26213?alt=media&token=7aa14525-0fc5-4c11-a8fb-a44ab121bcfa", 
    "name" : "Daas" 
}, 
"-KJ5VJtTUQqKnHmuu1tY" : { 
    "description" : "dukaan", 
    "img_url" : "https://firebasestorage.googleapis.com/v0/b/fooder-5eba6.appspot.com/o/shop_images%2Fimage%3A26203?alt=media&token=748363be-f0ab-45b4-bd7d-f58be2308b6c", 
    "name" : "offline" 
    } 
    } 
} 

Jetzt möchte ich Werte von itemlist zeigen. Wie kann ich es tun?.

+0

Sie haben in Ihrer Frage einen Link zu einem Bild des JSON Baum enthalten. Bitte ersetzen Sie dies durch den tatsächlichen JSON als Text, den Sie einfach erhalten, indem Sie auf die Schaltfläche "Exportieren" in Ihrer Firebase-Datenbank klicken. Da der JSON als Text durchsuchbar ist, können wir ihn einfach verwenden, um mit Ihren tatsächlichen Daten zu testen und sie in unserer Antwort zu verwenden, und im Allgemeinen ist dies nur eine gute Sache. –

+0

@FrankvanPuffelen Sir, wie du gesagt hast –

Antwort

0

immer retrive i Werte von Feuerbasis wie folgt

//GET DATA FROM FIREBASE INTO ARRAYLIST 
    fb_to_read.addValuesEventListener....{ 
     public void onDataChange(DataSnapshot result){ 
      List<String> lst = new ArrayList<String>(); // Result will be holded Here 
      for(DataSnapshot dsp : result.getChildren()){ 
       lst.add(String.valueOf(dsp.getKey())); //add result into array list 
      } 
      //NOW YOU HAVE ARRAYLIST WHICH HOLD RESULTS 
     for(String data:lst){ 
      Toast.make(context,data,Toast.LONG_LENGTH).show; 
      } 
     } 
} 
+0

Das ist in der Tat eine Möglichkeit, Gegenstände von Firebase in Android zu bekommen. OP verwendet 'FirebaseRecyclerAdapter', das das Laden/Synchronisieren von Firebase automatisch behandelt, so dass dies ein anderer Ansatz ist. –

+0

@FrankvanPuffelen Sir, bitte helfen Sie mir. Daran bin ich sehr fest. –

+0

Werfen Sie einen Blick auf diesen Link http://stackoverflow.com/questions/32886546/how-to-get-all-child-list-from-firebase-android/36600791#36600791 –