首页 > 解决方案 > 未经检查地调用“continueWithTask....”作为原始类型的成员

问题描述

我在所有三种方法上都收到此警告,我尝试在 stackoverflow 中搜索解决方案,但无法弄清楚可用解决方案将如何应用于我的案例。即使代码按预期运行良好,但代码块以黄色突出显示,并且似乎不断要求注意。谢谢您的帮助!

        final StorageReference storageReference = FirebaseStorage.getInstance().getReference()
                .child(mStorageRef).child(mFileName);
        final StorageTask storageTask = storageReference.putFile(intentDataUri);

        storageTask.addOnProgressListener((OnProgressListener<UploadTask.TaskSnapshot>) taskSnapshot -> {
            double p = 100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount();
            progressDialog.setMessage((int) p + getString(R.string.percent_of) + taskSnapshot.getTotalByteCount() +getString(R.string.strUploading));
        }).continueWithTask((Continuation) task -> {
            if (!task.isSuccessful()) {
                throw task.getException();
            }
            return storageReference.getDownloadUrl();
        }).addOnCompleteListener((OnCompleteListener<Uri>) uriTask -> {

标签: javaandroidfirebase

解决方案


终于解决了这个问题,我修改了下面的代码,它不再抛出那个警告,用 UploadTask 替换了 StorageTask 并且它工作了 -

        final String messageID = databaseReference.child(getResources().getString(R.string.dbrefMessage)).child(mCurrentUserID)
                .child(mMsgReceiverID).push().getKey();
        final StorageReference storageReference = FirebaseStorage.getInstance().getReference()
                .child(mStorageRef).child(mFileName);
        final UploadTask uploadTask = storageReference.putFile(uri);

        uploadTask.addOnProgressListener(taskSnapshot -> {
            double p = 100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount();
            progressDialog.setMessage((int) p + getString(R.string.percent_of) + taskSnapshot.getTotalByteCount() + getString(R.string.strUploading));
        }).continueWithTask(task -> {
            if(!task.isSuccessful()){
                throw task.getException();
            }
            return storageReference.getDownloadUrl();
        }).addOnCompleteListener(uriTask -> {

推荐阅读