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”。请参阅上传的图片。
您认为将所有图像从Firebase数据库获取到ArrayList的最佳方法是什么?
您必须遍历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) {
}
});