亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將圖像下載 URL 從 FireBase 存儲發送到 SQLServer 數據庫?

如何將圖像下載 URL 從 FireBase 存儲發送到 SQLServer 數據庫?

守著一只汪 2022-10-12 15:25:55
我在將下載 url 發送到 sql server 數據庫時遇到問題,即使我獲取了 url 并將其設置為 TextView 但它沒有顯示在數據庫中。這是我一直在嘗試的代碼,并嘗試了很多方法但仍然無法正常工作public void Upload() {    if (filePath != null) {        final ProgressDialog progressDialog = new ProgressDialog(getActivity());        progressDialog.setTitle("Uploading");        progressDialog.show();        final StorageReference riversRef = FirebaseStorage.getInstance().getReference().child("BrandImages/" + brandname.getText().toString() + ".jpg");        riversRef.putFile(filePath)                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {            @Override            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {                progressDialog.dismiss();                Task<Uri> task = taskSnapshot.getMetadata().getReference().getDownloadUrl();                task.addOnSuccessListener(new OnSuccessListener<Uri>() {                    @Override                    public void onSuccess(Uri uri) {                        String generatedFilePath = uri.toString();                        imgpath.setText(generatedFilePath);                    }                });                ConnectDatabase db = new ConnectDatabase();                Connection con = db.ConnectDB();                if (con == null)                    Toast.makeText(getActivity(), "Please check your internet connection!", Toast.LENGTH_LONG).show();                else {                    try {                        Statement sm = con.createStatement();                        int x = sm.executeUpdate("insert into CarBrand values('" + brandname.getText() + "','" + imgpath.getText() + "')");                             }        });現在我得到了 url 并設置為 (imgpath) 這是一個 TextView 但問題是當它插入數據庫時它顯示 TextView 的默認值而不是下載 URL
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

嘗試將您的 sql db 方法放在偵聽器中(我不知道您的代碼的上下文,但這可能不起作用,因為 firebase 方法是異步的)。


現在您確定您的方法將在您獲得 URL 后立即執行。


像這樣 :


Task<Uri> task = taskSnapshot.getMetadata().getReference().getDownloadUrl();

            task.addOnSuccessListener(new OnSuccessListener<Uri>() {

                @Override

                public void onSuccess(Uri uri) {

                    String generatedFilePath = uri.toString();

                    imgpath.setText(generatedFilePath);






            ConnectDatabase db = new ConnectDatabase();

            Connection con = db.ConnectDB();

            if (con == null)

                Toast.makeText(getActivity(), "Please check your internet connection!", Toast.LENGTH_LONG).show();


            else {

                try {

                    Statement sm = con.createStatement();

                    int x = sm.executeUpdate("insert into CarBrand values('" + brandname.getText() + "','" + imgpath.getText() + "')");


                    if (x == 0)

                        Toast.makeText(getActivity(), "an error occurred, please try again in a few moments.", Toast.LENGTH_LONG).show();

                    else {

                        Toast.makeText(getActivity(), "Brand has been added.", Toast.LENGTH_LONG).show();

                        brandname.getText().clear();

                         }

                } catch (SQLException e) {

                    if (e.getErrorCode() == 2627)

                        Toast.makeText(getActivity(), "Brand already exists!", Toast.LENGTH_LONG).show();

                    else

                        Toast.makeText(getActivity(), "an error occurred", Toast.LENGTH_LONG).show();

                }


            }

                }

            });


查看完整回答
反對 回復 2022-10-12
  • 1 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號