【问题标题】:Upload Image to Firebase Storage with the current users UID使用当前用户 UID 将图像上传到 Firebase 存储
【发布时间】:2020-02-28 22:51:53
【问题描述】:

如何上传同时附有当前用户 UID 的图片?

示例如下。

这是我用来上传图片的代码,但到目前为止还没有成功添加 UID。

private void updloadImage(Uri pickedImage){
        StorageReference myStorage = FirebaseStorage.getInstance().getReference().child("users_photos");
        final StorageReference imagePath = myStorage.child(pickedImage.getLastPathSegment());
        userID = fAuth.getCurrentUser().getUid();
        imagePath.putFile(pickedImage).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                imagePath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                    @Override
                    public void onSuccess(Uri uri) {
                        UserProfileChangeRequest myUpdate = new UserProfileChangeRequest.Builder().setPhotoUri(uri).build();


                    }
                });
            }
        });

【问题讨论】:

  • 将 UID“附加”到文件对您来说究竟意味着什么?一旦按照您的想法附加了该 UID,您打算如何处理它?

标签: android firebase firebase-storage


【解决方案1】:

如果您希望用户的 UID 成为 Cloud Storage 中图像文件名的一部分,您可以:

StorageReference myStorage = FirebaseStorage.getInstance().getReference().child("users_photos");
final StorageReference imagePath = myStorage.child(pickedImage.getLastPathSegment());
userID = fAuth.getCurrentUser().getUid();
imagePath.putFile(userID+"_"+pickedImage).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {

如果您希望用户的图像最终位于基于其 UID 的子文件夹中,您可以将最后一行更改为:

imagePath.child(userID).putFile(pickedImage).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {

【讨论】:

  • 如何将图像放在“users_photos”文件夹中,然后将图像名称设置为 UID。我该怎么做呢?
  • 那就是imagePath.child("users_photos").putFile(userID)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-27
  • 2020-11-26
  • 1970-01-01
  • 2017-09-25
相关资源
最近更新 更多