2016-10-25 4 views
3

ArrayListをFirebaseに追加しましたが、戻す方法がわかりません。FirebaseからArray Listオブジェクトを取得する方法

mDatabase.child("list").child("person").setValue(myValues); 
//This is how I added it to my firebase 

これは私が試したことです。これは私のエラーメッセージ

com.google.firebase.database.DatabaseExceptionです:あなたが働いていた場合は項目

ValueEventListener postListener = new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot snapshot) { 
       for (DataSnapshot data : snapshot.getChildren()) { 
        GenericTypeIndicator<HashMap<String, Item>> t = new GenericTypeIndicator<HashMap<String, Item>>() {}; 

        HashMap<String, Item> beans = data.getValue(t); 

        Set set = beans.entrySet(); 
        Iterator i = set.iterator(); 

        // Display elements 
        while (i.hasNext()) { 
         Map.Entry me = (Map.Entry) i.next(); 
         Toast.makeText(getContext(), me.getKey() + ": ", Toast.LENGTH_LONG).show(); 
         Toast.makeText(getContext(), me.getValue().toString(), Toast.LENGTH_LONG).show(); 
         System.out.println(me.getValue()); 
        } 
       } 

      } 
      @Override 
      public void onCancelled(DatabaseError firebaseError) { 
       Log.e("The read failed: " ,firebaseError.getMessage()); 
      } 
     }; 
     mDatabase.addValueEventListener(postListener); 

答えて

10

申し訳ありませんを入力するタイプはjava.util.ArrayListのオブジェクトを変換できません。私がする必要があったのはディレクトリを変更することでした。

ValueEventListener postListener = new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot snapshot) { 
       GenericTypeIndicator<ArrayList<Item>> t = new GenericTypeIndicator<ArrayList<Item>>() {}; 
       ArrayList<Item> yourStringArray = snapshot.getValue(t); 
       Toast.makeText(getContext(),yourStringArray.get(0).getName(),Toast.LENGTH_LONG).show(); 
      } 
      @Override 
      public void onCancelled(DatabaseError firebaseError) { 
       Log.e("The read failed: " ,firebaseError.getMessage()); 
      } 
     }; 
     mDatabase.child("list/user1").addValueEventListener(postListener); 
+0

Thansk man、あなたは私を救う...;) –

0

これは私がこのオブジェクトに格納しているメッセージのリストを持っています。

private void lerMessagensFirebase() { 
    mFirebaseDatabaseReference = FirebaseDatabase.getInstance().getReference(); 
    final ChatFirebaseAdapter firebaseAdapter = new ChatFirebaseAdapter(mFirebaseDatabaseReference.child("chatmodel"), userModel.getName(), this); 
    firebaseAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { 
     @Override 
     public void onItemRangeInserted(int positionStart, int itemCount) { 
      super.onItemRangeInserted(positionStart, itemCount); 
      int friendlyMessageCount = firebaseAdapter.getItemCount(); 
      int lastVisiblePosition = mLinearLayoutManager.findLastCompletelyVisibleItemPosition(); 
      if (lastVisiblePosition == -1 || 
        (positionStart >= (friendlyMessageCount - 1) && 
          lastVisiblePosition == (positionStart - 1))) { 
       rvListMessage.scrollToPosition(positionStart); 
      } 
     } 
    }); 
    rvListMessage.setLayoutManager(mLinearLayoutManager); 
    rvListMessage.setAdapter(firebaseAdapter); 
} 
関連する問題