こんにちはFirebaseを使用してAndroidアプリケーションを開発していますが、Firebase onchangeメソッドからデータを取得しようとしたときに問題が発生しました。メソッドの内部でのみ使用可能であり、外部ではnullです。 もっと明示するために、いくつかの名前とFirebaseストレージ内の画像へのURL参照を含むデータ配列を持っているので、配列を取得して、データをtextviewsなどに入れます(このすべては、私はそれを行うときに別のfirebaseメソッドを使用する必要がある写真をダウンロードしたいときに私はこのエラーが発生する私はそれが別の内部の非同期メソッドがあるため、エラーが最大スレッド128何かに達したこのように、ここにコードFirebase OnChangeメソッドからデータを取得する
ideasListFireRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap<String, HashMap> ideasList = (HashMap<String, HashMap>) dataSnapshot.getValue();//getting list
idsList = new ArrayList<>(ideasListFire.keySet()); //list of IDs of picture to get from firebase storage //method to get pictures from firebase storage
imagesTab = new HashMap<>();
while (i < idsList.size()) {
final long ONE_MEGABYTE = 1024 * 1024;
StorageReference storageRef = FirebaseStorage.getInstance().getReferenceFromUrl(ideasListFire.get(idsList.get(i)).get("mainPic").toString());
storageRef.getBytes(ONE_MEGABYTE).addOnSuccessListener(new OnSuccessListener<byte[]>() {
@Override
public void onSuccess(byte[] bytes) {
// Got the download URL for 'users/me/profile.png'
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
imagesTab.put(idsList.get(i), bmp);
// testim.setImageBitmap(bmp);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});
このコードは私を与えるのスレッドの問題 や方法が分離されている他のコードのエラーがidsListがOnDataChangeの方法のうち、nullである原因のIdsリストにnullを与え 私の英語の間違いを手伝ってくれて本当にありがとう=)