第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何從 firebase 存儲(chǔ)中獲取 imageUrl 以存儲(chǔ)在 firebase 實(shí)時(shí)數(shù)據(jù)庫中?

如何從 firebase 存儲(chǔ)中獲取 imageUrl 以存儲(chǔ)在 firebase 實(shí)時(shí)數(shù)據(jù)庫中?

飲歌長嘯 2022-06-04 14:53:15
基本上我創(chuàng)建了一個(gè)名為“俱樂部”的課程。我成功地將一個(gè)新俱樂部保存到 Firebase 實(shí)時(shí)數(shù)據(jù)庫,沒有任何實(shí)際問題,直到我想將 Firebase 存儲(chǔ)中的 imageURL(稱為 clubImage)添加到我的俱樂部類。我可以使用以下代碼成功地將我的圖像上傳到 Firebase 存儲(chǔ)。    private void uploadImage() {        //upload selected image to database        //code from https://code.tutsplus.com/tutorials/image-upload-to-firebase-in-android-application--cms-29934             if(filePath != null)        {            final ProgressDialog progressDialog = new ProgressDialog(this);            progressDialog.setTitle("Uploading...");            progressDialog.show();            final StorageReference ref = storageReference.child("images/"+ UUID.randomUUID().toString());            ref.putFile(filePath)                    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {                        @Override                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {                            progressDialog.dismiss();                            Toast.makeText(AddClubActivity.this, "Uploaded", Toast.LENGTH_SHORT).show();                        }                    })                    .addOnFailureListener(new OnFailureListener() {                        @Override                        public void onFailure(@NonNull Exception e) {                            progressDialog.dismiss();                            Toast.makeText(AddClubActivity.this, "Failed "+e.getMessage(), Toast.LENGTH_SHORT).show();                        }    }這一切都很好。但是,在同樣的方法中,我也有這段代碼,我嘗試在其中獲取上傳圖像的下載 URL。            ref.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {                @Override                public void onSuccess(Uri uri) {                    Uri downloadUrl = uri;                    clubImage = downloadUrl.toString();                }            });我知道為同一件事設(shè)置兩個(gè) OnSuccessListener 效率很低,我只是不確定如何同時(shí)上傳圖像和獲取 downloadUrl。無論如何,這不起作用,我的新俱樂部在沒有 clubImage 字段的情況下保存。我收到錯(cuò)誤:E/StorageException:StorageException 已發(fā)生。對象在該位置不存在。有誰知道如何解決這一問題?謝謝。
查看完整描述

2 回答

?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊

我知道為同一件事設(shè)置兩個(gè) OnSuccessListener 效率低下


您有兩個(gè)要嘗試完成的任務(wù):


上傳一個(gè)文件

獲取該文件的下載 URL

由于這是兩個(gè)獨(dú)立的任務(wù),因此您需要兩個(gè)OnSuccessListeners. 這并沒有什么低效的地方,任務(wù)也不盡相同。


上傳后獲取下載 URL的 Firebase 文檔準(zhǔn)確地展示了如何連續(xù)完成這兩個(gè)任務(wù):


final StorageReference ref = storageRef.child("images/mountains.jpg");

uploadTask = ref.putFile(file);


Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {

    @Override

    public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {

        if (!task.isSuccessful()) {

            throw task.getException();

        }


        // Continue with the task to get the download URL

        return ref.getDownloadUrl();

    }

}).addOnCompleteListener(new OnCompleteListener<Uri>() {

    @Override

    public void onComplete(@NonNull Task<Uri> task) {

        if (task.isSuccessful()) {

            Uri downloadUri = task.getResult();

        } else {

            // Handle failures

            // ...

        }

    }

});

您會(huì)注意到,此代碼首先完成uploadTask(上傳文件),然后才開始一個(gè)新任務(wù)以獲取下載 URL。按此順序執(zhí)行任務(wù)可防止您收到“對象在該位置不存在”錯(cuò)誤消息。


查看完整回答
反對 回復(fù) 2022-06-04
?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊

嘗試使用這個(gè):


private Uri ImageUri;   //and get image from gallery intent to this ImageUri

...............

StorageReference filePath = FirebaseStorage.getInstance().getReference().child("Club Images").child(ImageUri.getLastPathSegment() + ".jpg");


    filePath.putFile(ImageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {

        @Override

        public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task)

        {

            if(task.isSuccessful())

            {

                downloadUrl = task.getResult().getDownloadUrl().toString();


                updatetoFirebaseDatabase();


            }

            else

            {

                String message = task.getException().getMessage();

            }

        }

    });

........... 

創(chuàng)建 updatetoFirebaseDatabase(String imageUrl) 方法:


updatetoFirebaseDatabase(String imageUrl){

    //implement FirebaseDatabase setvalue method with given image URL

}


查看完整回答
反對 回復(fù) 2022-06-04
  • 2 回答
  • 0 關(guān)注
  • 166 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號