将firebase存储按钮中的上传图像与firebase数据库中的提交按钮相关联

时间:2018-03-30 12:16:28

标签: android firebase firebase-realtime-database firebase-storage

我开发了一个小表单,用于为firebase中的请求提交信息,该表单将在数据库中提交常规信息,并在存储中提交图像。! (see the design of the form for more clarity) 1 正如您在表单中看到的那样,提交图像的按钮与提交常规信息的按钮不同。我如何合并两个按钮?,所以当我点击提交按钮时,它应该提交常规信息和具有相同ID的图像,以便我可以在以后检索请求,我尝试将两种方法合并在一起,但它显示我错了。

以下是按钮的两种方法:

    private void btnInsert1(){
    database = FirebaseDatabase.getInstance();
    ref1 = database.getReference("requests");
    DatabaseReference ref2=ref1.push();
    String id=ref2.getKey();
    request1 =new requests();
    getValues();
    ref1.child(id).setValue(request1);
    Toast.makeText(FillRequestPage.this,"Data inserted....",Toast.LENGTH_SHORT).show();
}

 private void uploadImage() {
    if(filePath != null){
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("Uploading...");
        progressDialog.show();

        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(FillRequestPage.this,"Uploaded",Toast.LENGTH_SHORT).show();

                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        progressDialog.dismiss();
                        Toast.makeText(FillRequestPage.this,"Failed"+e.getMessage(),Toast.LENGTH_SHORT).show();
                    }
                })
                .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                        double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot.getTotalByteCount());
                        progressDialog.setMessage("Uploaded"+(int)progress+"%");
                    }
                });

    }
}

private void chooseimage() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent,"Select Picture"),PICK_IMAGE_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK &&
            data != null && data.getData() != null )
    {
        filePath = data.getData();
        try{
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),filePath);
            imageView.setImageBitmap(bitmap);
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

0 个答案:

没有答案