我们如何在Firebase存储上为我们的Android应用的每个新用户自动生成一个新文件夹?

时间:2018-03-08 04:39:25

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

目前,使用我的Android应用的所有用户的数据都将转到Firebase存储上的单个文件夹。但我想为每个新设备自动创建一个新文件夹。手段,"哈里设备的数据"将被上传到" Harry Folder"存储Firebase。和"简的设备"将自动上传到" Jane Folder"。

注意:我希望在Firebase存储上自动创建文件夹。

2 个答案:

答案 0 :(得分:0)

不要使用名称,使用用户的UID,因为它是唯一的。 每当将数据上传到firebase时都使用:

private void uploadMethod() {
        progressDialog();
        StorageReference storageReferenceProfilePic = firebaseStorage.getReference();
        StorageReference imageRef = storageReferenceProfilePic.child(firebaseUser.getUid() + "/" + "image" + ".jpg");

        imageRef.putFile(profilePicUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        //if the upload is successful
                        //hiding the progress dialog
                        //and displaying a success toast
                        dismissDialog();
                        profilePicUrl = taskSnapshot.getDownloadUrl().toString();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception exception) {
                        //if the upload is not successful
                        //hiding the progress dialog
                        dismissDialog();
                        //and displaying error message
                        Toast.makeText(getActivity(), exception.getCause().getLocalizedMessage(), Toast.LENGTH_LONG).show();
                    }
                })
                .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                        //calculating progress percentage
//                        double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
//                        //displaying percentage in progress dialog
//                        progressDialog.setMessage("Uploaded " + ((int) progress) + "%...");
                    }
                });

    }

答案 1 :(得分:0)

没有自动创建特定的firebase云存储位置时 新用户注册到您的应用。但您可以通过根据用户ID命名文件夹来手动实现此目的。