【发布时间】:2018-04-16 08:40:54
【问题描述】:
我想在我的数据库中保存用户的个人资料图片以供以后使用。
我使用以下代码将其保存到我的 firebase 云存储中:
private void uploadImage() {
if(picture != null)
{
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setTitle("Uploading...");
progressDialog.show();
StorageReference ref = storageReference.child("images"+ UUID.randomUUID().toString());
ref.putFile(picture)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
progressDialog.dismiss();
Toast.makeText(MainActivity.this, "Uploaded", Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
progressDialog.dismiss();
Toast.makeText(MainActivity.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+"%");
}
});
}
}
现在,我想将它作为一个孩子保存在我的数据库中... 我有这个代码来保存所有数据(姓名、电子邮件、电话、密码......)
mAuth.createUserWithEmailAndPassword(edtEmail.getText().toString(), edtPassword.getText().toString())
.addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
User user = new User();
user.setEmail(edtEmail.getText().toString());
user.setPhone(edtPhone.getText().toString());
user.setPassword(edtPassword.getText().toString());
user.setName(edtName.getText().toString());
user.setId(mAuth.getCurrentUser().getUid());
user.setProfilePic(picture);
但是“user.setProfilePic(picture)”不起作用...
将用户的个人资料图片保存在我的数据库中的最佳方法是什么?
谢谢
【问题讨论】:
标签: android firebase firebase-realtime-database