java - downloadUrl 在 firebase 存储中变为 com.google.android.gms.tasks.zzu@5f9a842

标签 java firebase firebase-storage

我收到错误 com.google.android.gms.tasks.zzu@5f9a842 作为 Firebase 存储中 downloadUrl 的 Uri

private void StoringImageToFirebaseStorage() {

        Calendar calFordData = Calendar.getInstance();
        SimpleDateFormat currentDate = new SimpleDateFormat("dd-MMMM-yyyy");
        saveCurrentData = currentDate.format(calFordData.getTime());

        Calendar calFordTime = Calendar.getInstance();
        SimpleDateFormat currentTime = new SimpleDateFormat("HH:mm");
        saveCurrentTime = currentTime.format(calFordData.getTime());

        postRandomName = saveCurrentData + saveCurrentTime;

        StorageReference filePath = PostsImagesRefrence.child("Post Images").child(ImageUri.getLastPathSegment()+ postRandomName + ".jpg");

        filePath.putFile(ImageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
                if (task.isSuccessful())
                {
                     String downloadUrl = task.getResult().getStorage().getDownloadUrl().toString();
                    Toast.makeText(PostActivity.this, "Image uploaded successfully to storage", Toast.LENGTH_SHORT).show();

                    SavingPostInformationToDatabase();
                }
                else{
                    String message = task.getException().getMessage();
                    Toast.makeText(PostActivity.this, "Error Occurred", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

最佳答案

公共(public)类 PostActivity 扩展 AppCompatActivity {

private Toolbar mToolbar;
private ImageButton SelectPostImage;
private Button UpdatePostButton;
private EditText PostDescription;
private static final int Gallery_Pick =1;
private Uri ImageUri;
private StorageReference PostsImagesRefrence;
private DatabaseReference UsersRef, PostsRef;

private FirebaseAuth mAuth;
private String Description;
private String saveCurrentData, saveCurrentTime, postRandomName, current_user_id, downloadUrl;

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_post);

    mAuth = FirebaseAuth.getInstance();
    current_user_id = mAuth.getCurrentUser().getUid();

    PostsImagesRefrence = FirebaseStorage.getInstance().getReference();
    UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
    PostsRef = FirebaseDatabase.getInstance().getReference().child("Posts");

    SelectPostImage = (ImageButton) findViewById(R.id.imageButton3);
    UpdatePostButton = (Button) findViewById(R.id.button3);
    PostDescription = (EditText) findViewById(R.id.editText);

    mToolbar = (Toolbar) findViewById(R.id.update_post_page_toolbar);
    setSupportActionBar(mToolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setTitle("Update Post");

    SelectPostImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            OpenGallery();
        }
    });

    UpdatePostButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ValidatePostInfo();
        }
    });
}

private void ValidatePostInfo() {
    Description = PostDescription.getText().toString();

    if(ImageUri==null)
    {
        Toast.makeText(this, "Please select post image", Toast.LENGTH_SHORT).show();
    }
    else if(TextUtils.isEmpty(Description)){
        Toast.makeText(this, "Please say something about your image",Toast.LENGTH_SHORT).show();
    }
    else{
        StoringImageToFirebaseStorage();
    }
}

private void StoringImageToFirebaseStorage() {

    Calendar calFordData = Calendar.getInstance();
    SimpleDateFormat currentDate = new SimpleDateFormat("dd-MMMM-yyyy");
    saveCurrentData = currentDate.format(calFordData.getTime());

    Calendar calFordTime = Calendar.getInstance();
    SimpleDateFormat currentTime = new SimpleDateFormat("HH:mm");
    saveCurrentTime = currentTime.format(calFordData.getTime());

    postRandomName = saveCurrentData + saveCurrentTime;

    StorageReference filePath = PostsImagesRefrence.child("Post Images").child(ImageUri.getLastPathSegment()+ postRandomName + ".jpg");

    filePath.putFile(ImageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
            if (task.isSuccessful())
            {
                 downloadUrl = task.getResult().getStorage().getDownloadUrl().toString();
                Toast.makeText(PostActivity.this, "Image uploaded successfully to storage", Toast.LENGTH_SHORT).show();

                SavingPostInformationToDatabase();
            }
            else{
                String message = task.getException().getMessage();
                Toast.makeText(PostActivity.this, "Error Occurred", Toast.LENGTH_SHORT).show();
            }
        }
    });
}

private void SavingPostInformationToDatabase() {

         UsersRef.child(current_user_id).addValueEventListener(new ValueEventListener() {
             @Override
             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                 if(dataSnapshot.exists()){
                     String userFullName = dataSnapshot.child("fullname").getValue().toString();
                     String userProfileImage = dataSnapshot.child("profileimage").getValue().toString();

                     HashMap postsMap = new HashMap();
                     postsMap.put("uid", current_user_id);
                     postsMap.put("date", saveCurrentData);
                     postsMap.put("time", saveCurrentTime);
                     postsMap.put("description", Description);
                     postsMap.put("postimage", downloadUrl);
                     postsMap.put("profileimage", userProfileImage);
                     postsMap.put("fullname", userFullName);
                     PostsRef.child(current_user_id + postRandomName).updateChildren(postsMap)
                             .addOnCompleteListener(new OnCompleteListener() {
                         @Override
                         public void onComplete(@NonNull Task task) {

                             if (task.isSuccessful()){
                                 SendUserToHomeActivity();
                                 Toast.makeText(PostActivity.this, "Post is updated successfully", Toast.LENGTH_SHORT).show();

                             }
                             else {
                                 Toast.makeText(PostActivity.this, "Error Occurred", Toast.LENGTH_SHORT).show();
                             }
                         }

                     });



                 }
             }

             @Override
             public void onCancelled(@NonNull DatabaseError databaseError) {

             }
         });
}

关于java - downloadUrl 在 firebase 存储中变为 com.google.android.gms.tasks.zzu@5f9a842,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61518930/

相关文章:

java - 我尝试编写该程序,但它没有按照我想要的方式工作。请告诉我我做错了什么

ios - 火力地堡 iOS : createUserWithEmail isn't generating userId (uid)

reactjs - Firebase 身份验证 : getIdToken on every fetch or set cookie?

android - 下载时出现 Firebase StorageException

java - 支持/整合语言测量单位的策略是什么?

java - 哪个是用 Java 读取大型 excel 文件的最佳 API?

java - 将 Bufferedimage 转换为 MultipartFile

javascript - 检索文档数据,其中条件值是子集合值

swift - 错误的 dispatch 组通知安置?

android - 每当我尝试在 Android 设备上上传文件时出现 "No content provider"错误