如何在Firebase数据库中添加/更新图像URL链接

时间:2019-01-25 18:19:13

标签: java android firebase firebase-realtime-database

如何在Firebase数据库中添加URL链接(不在数据库中)

1)我注册了Auth并将数据保存在“数据库”中,但是我首先将图像URL设置为空,之后我要在其上添加图像并将图像URL保存在数据库中

类似这样的事情: Database

2)现在我想在上面添加图像并保存URL,但是数据库变成这样:After save the URL database

3),但我想这样保存图片网址:The database that i want.....

有人可以帮助我解决这个问题吗?

我可以更改我的代码吗?

这是我的代码:

 private void saveinfo() { //create info java class
    if(mImageUri != null){
        StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()+"."+ getFileExtension(mImageUri));
      mUploadTask =  fileReference.putFile(mImageUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                        Task<Uri> urlTask = taskSnapshot.getStorage().getDownloadUrl();
                        while (!urlTask.isSuccessful());
                        Uri downloadUrl = urlTask.getResult();


                        User in = new User();

                        in.setIcurl(downloadUrl.toString());

                        FirebaseDatabase  database = FirebaseDatabase.getInstance();
                        DatabaseReference mDatabaseRef = database.getReference();

                        mDatabaseRef.child("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("icurl").setValue(in);

                        Toast.makeText(Welcome.this, "success", Toast.LENGTH_LONG).show();


                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                    Toast.makeText(Welcome.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });
    }else {
        Toast.makeText(this,"no image selected", Toast.LENGTH_SHORT).show();
    }

1 个答案:

答案 0 :(得分:0)

似乎您在内部存储了一个对象(即用户),这就是此行为的原因 更改下面的行[one two three] [three two one] [one two three]

对此

mDatabaseRef.child("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("icurl").setValue(in);