具有随机名称的Firebase存储

时间:2017-08-01 09:22:12

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

我正在创建一个配置文件屏幕,其中包含一个图像,该图像未在此注册屏幕中选择。 如何为每个新记录加载默认图像。并且图像始终相同(存储在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();
        }

我试图创造一个例子,但它不起作用!!!

2 个答案:

答案 0 :(得分:0)

您可以通过三种方式将图像上传到云存储。

  1. 从内存中的数据上传

  2. 从流上传

  3. 从本地文件上传

  4. 适合您的方式是从内存中的数据上传。您可以使用drawable在XML中设置图像。当您获得具有某个名称的图像时,请附加一个随机数并将其发送到存储。您将获得一个URI,存储该URI以供将来使用。

答案 1 :(得分:0)

我知道了,只是写作

imageRef = storageRef.child(RandomName() + "/pic");