Android 从RecyclerView onBindViewHolder调用Firebase DatabaseReference方法UpdateChildren()时引发堆栈溢出错误

Android 从RecyclerView onBindViewHolder调用Firebase DatabaseReference方法UpdateChildren()时引发堆栈溢出错误,android,firebase,firebase-storage,android-recyclerview,Android,Firebase,Firebase Storage,Android Recyclerview,我目前正在我的recyclerView onBindViewholder中执行这些代码,但是我得到了堆栈溢出 final DatabaseReference ref = getRef(position); //update the uploaded node final HashMap<String, Object> fullUploadUpdate = new HashMap<>(); fullUploadUpdate.put("uploaded", true); St

我目前正在我的recyclerView onBindViewholder中执行这些代码,但是我得到了堆栈溢出

final DatabaseReference ref = getRef(position);
//update the uploaded node
final HashMap<String, Object> fullUploadUpdate = new HashMap<>();
fullUploadUpdate.put("uploaded", true);
StorageTask<UploadTask.TaskSnapshot> t1 = thumbUploadRef.putBytes(ImageUtils.compressImage(FileUtils.getPath(getContext(), filePath), 20))
.addOnSuccessListener(getActivity(), new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        fullUploadUpdate.put("thumbnailUri", taskSnapshot.getDownloadUrl());

    }
});
StorageTask<UploadTask.TaskSnapshot> t2 = fullUploadRef.putFile(filePath)
.addOnProgressListener(getActivity(), new OnProgressListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
        double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
        Timber.d("Upload is " + progress + "% done");
        mpOutHolder.setUploadProgress(progress);
    }
}).addOnSuccessListener(getActivity(), new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        fullUploadUpdate.put("fullImageUri", taskSnapshot.getDownloadUrl());
        fullUploadUpdate.put("size", taskSnapshot.getTotalByteCount());
    }
});

Tasks.whenAll(t1, t2).addOnSuccessListener(new OnSuccessListener<Void>() {
    @Override
    public void onSuccess(Void aVoid) {
        ref.updateChildren(fullUploadUpdate);
    }
});
final DatabaseReference=getRef(位置);
//更新上载的节点
final HashMap fullUploadUpdate=新HashMap();
fullUploadUpdate.put(“upload”,true);
StorageTask t1=thumbUploadRef.putBytes(ImageUtils.compressImage(FileUtils.getPath(getContext(),filePath),20))
.addOnSuccessListener(getActivity(),新OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
fullUploadUpdate.put(“thumbnailUri”,taskSnapshot.getDownloadUrl());
}
});
StorageTask t2=fullUploadRef.putFile(文件路径)
.addOnProgressListener(getActivity(),new OnProgressListener()){
@凌驾
public void onProgress(UploadTask.TaskSnapshot TaskSnapshot){
双进度=(100.0*taskSnapshot.GetByTestTransferred())/taskSnapshot.getTotalByteCount();
Timber.d(“上传为”+进度+%完成”);
mpOutHolder.setUploadProgress(进度);
}
}).addOnSuccessListener(getActivity(),新OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
fullUploadUpdate.put(“fullImageUri”,taskSnapshot.getDownloadUrl());
fullUploadUpdate.put(“size”,taskSnapshot.getTotalByteCount());
}
});
Tasks.whenAll(t1,t2).addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公开作废(作废避免){
参考updateChildren(完整上传更新);
}
});

问题在于我需要调用的HasMap
taskSnapshot.getDownloadUrl().toString()