2016-11-12 3 views
0

私はFirebaseを使用してAndroidアプリケーションを開発しています。下のツリーのすべての値をArrayListにする必要があります。しかし、私はNullPointerExceptionを得ています。私は以下のデータベースとコードを示しました。私を助けてください。 質問とは異なりますHow to Retrieve a List object from the firebase in android 私はオブジェクトのリストではなく文字列のリストを取得しようとしています。私はこれの例を見つけることができません。Firebaseのすべての値のリストを取得する方法は?

brandRef=FirebaseDatabase.getInstance().getReferenceFromUrl("https://stockmanager-142503.firebaseio.com/Brands "); 
brandRef.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot ds: dataSnapshot.getChildren()) 
      allBrands.add(ds.getValue(String.class)); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 

デシベルへの参照が正常に動作します:

Here's my firebase database

は、ここでは、コードです。私は問題なく値を加えることができます。あなたのコールバックで

FATAL EXCEPTION: main java.lang.NullPointerException at com.strokx.user.stockmanager.AddItemFragment$2.onDataChange(AddItemFragment.java:93) 
                       at com.google.android.gms.internal.zzakg.zza(Unknown Source) 
                       at com.google.android.gms.internal.zzalg.zzcxk(Unknown Source) 
                       at com.google.android.gms.internal.zzalj$1.run(Unknown Source) 
                       at android.os.Handler.handleCallback(Handler.java:605) 
                       at android.os.Handler.dispatchMessage(Handler.java:92) 
                       at android.os.Looper.loop(Looper.java:137) 
                       at android.app.ActivityThread.main(ActivityThread.java:4517) 
                       at java.lang.reflect.Method.invokeNative(Native Method) 
                       at java.lang.reflect.Method.invoke(Method.java:511) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760) 
                       at dalvik.system.NativeStart.main(Native Method) 

答えて

2

(あなたがしてpersonプロパティを取得するとします):

brandRef.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot ds: dataSnapshot.getChildren()) { 

      MeetingUser person = ds.getValue(Person.class); 

      String id = person.getId(); 
      String name= person.getName(); 

      // Then add the value you require to add in your ArrayList 
      allBrands.add(name); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 
1

getKey()機能は、ここで適切である

は、ここで私が取得していますエラーです。

brandRef=FirebaseDatabase.getInstance().getReferenceFromUrl("https://stockmanager-142503.firebaseio.com/Brands "); 
brandRef.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot ds: dataSnapshot.getChildren()) 
      allBrands.add(ds.getKey()); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}); 
関連する問題