我正在创建一个配置文件屏幕,其中包含一个图像,该图像未在此注册屏幕中选择。如何为每个新记录加载默认图像。并且图像始终相同(存储在Drawable中),只需将名称更改为随机。
此文件将存储在Firebase存储和Firebase数据库中的路径中。
我想尽可能最好地实现一些想法。
注意:我看过一些例子,但他们都谈到捕获图库然后上传它。就我而言,图像已经在Drawable中,其名称为imagedefault.jpg
码:
mAuth.createUserWithEmailAndPassword(email,senha).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if ( task.isSuccessful() ){
String user_id = mAuth.getCurrentUser().getUid();
/* Capture image in Drawable */
String imageUri = "drawable://" + R.drawable.imagedefault;
StorageReference storageRef = storage.getReference();
StorageReference mountainsRef = storageRef.child(imageUri);
/* Created node User */
DatabaseReference current_user_db = mDatabaseUsers.child(user_id);
current_user_db.child("name").setValue(edtName);
/* Created node Profile User */
DatabaseReference id_user = mDatabaseProfileUser.child(user_id);
id_user.child("user_name").setValue(edtUserName);
id_user.child("photo").setValue(??????);
mProgress.dismiss();
Toast.makeText(RegisterActivity.this, "Thanks register!!", Toast.LENGTH_SHORT).show();
Intent intentPos = new Intent(RegisterActivity.this, MainActivity.class);
intentPos.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intentPos);
} else {
mProgress.dismiss();
Toast.makeText(RegisterActivity.this, "Error", Toast.LENGTH_LONG).show();
}
我试图创建一个例子,但它不工作!
我得到了它的工作,它只是写作
imageRef = storageRef.child(RandomName() + "/pic");
您可以通过三种方式将图像上传到云存储。
适合您的方式是从内存中的数据上传。您可以使用drawable在XML中设置图像。当您获得具有某个名称的图像时,请附加一个随机数并将其发送到存储。您将获得一个URI,存储该URI以供将来使用。