Как добавить несколько изображений из моей базы данных Firebase в мой ArrayList - PullRequest
0 голосов
/ 06 января 2020
public class getFirebase extends AppCompatActivity {

    DatabaseReference dbRef;


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

        dbRef = FirebaseDatabase.getInstance().getReference().child("theimage");

        final List<Integer> images = new ArrayList<>();

        dbRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull com.google.firebase.database.DataSnapshot dataSnapshot) {

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        })

    }
}

Я загрузил изображения в хранилище Firebase, а затем скопировал ссылку на изображение в свою дочернюю базу данных «theimage». См. Загруженное изображение.

поместите ссылку на хранилище изображений в узел "theimage" enter image description here

Какой, по вашему мнению, лучший способ получить все изображения из моей базы данных? База данных для моего ArrayList?

1 Ответ

1 голос
/ 06 января 2020

Вам нужно l oop через ваш DataSnapshot, чтобы получить все изображения в ArrayList. Кроме того, ваш ArrayList должен быть String типа. Проверьте ниже:

final List<String> images = new ArrayList<>();

dbRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

        for(DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
            images.add(childSnapshot.getValue(String.class));
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});

Если вы также хотите получить ключ, например apple , samsung , тогда вам нужно использовать Map вместо ArrayList. проверьте ниже:

final Map<String, String> images = new HashMap<>();

dbRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

        for(DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
            images.put(childSnapshot.getKey(), childSnapshot.getValue(String.class));
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...