如何在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();
}
答案 0 :(得分:0)
似乎您在内部存储了一个对象(即用户),这就是此行为的原因
更改下面的行[one two three]
[three two one]
[one two three]
对此
mDatabaseRef.child("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("icurl").setValue(in);