有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java firebase,获取数据时如何从内部类返回值

我了解到使用全局静态变量不是好的工程, 所以我总是尝试返回我需要的值或对象。 在这种情况下,当所有数据最终同步时,如何返回arraylist

下面是我的代码:

public List<String> getList() {

DatabaseReference dbRefList = fireDB.getReference("database/list");
dbRefList.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {

    List<String> name = new ArrayList<>();
    for (DataSnapshot ds : dataSnapshot.getChildren()) {
      String name = ds.child("name").getValue().toString();
      versionName.add(name);
    }
    dataSnapshot.child("name").getValue().toString();
    //want to return the list
  }

  @Override
  public void onCancelled(DatabaseError databaseError) { }
});
}

编辑

以下是我在使用回调时遇到的问题: 下面的代码我得到回调的null

public void downloadImagesFromFireStorage(String imgName, final BitmapCallBackInterface bitmapCallBackInterface) {

StorageReference storageRef = FirebaseStorage.getInstance()
        .getReferenceFromUrl("gs://xxxxx.appspot.com").child("imgs").child(imgName + ".png");

final long ONE_MEGABYTE = 1024 * 1024;

storageRef.getBytes(ONE_MEGABYTE).addOnSuccessListener(new OnSuccessListener<byte[]>() {

  @Override
  public void onSuccess(byte[] bytes) {
    Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
    bitmapCallBackInterface.onCallBack(bitmap);
  }
});

当我打电话时

downloadImagesFromFireStorage(imgName, new BitmapCallBackInterface() {
      @Override
      public void onCallBack(Bitmap bitmap) {
        insertImg(couponName, bitmap);
      }
    });

我在某些过程中出错了吗


共 (1) 个答案

  1. # 1 楼答案

    尝试使用EventBus。检查link