首页 > 解决方案 > 无法将图像推送到 Firebase 存储并在应用中显示

问题描述

请帮忙!我无法将照片推送到 Firebase 存储,因此无法在我的应用中显示。此代码参考了周末课程中的 Udacity Firebase。我想将所选照片推送到 Firebase 存储并显示在我的应用程序中。第一张图片显示聊天活动,第二张图片显示点击图片图标时图片库的意图,第三张图片显示无法将所选照片推送到 Firebase 存储并且也不显示在应用程序中的结果。我想将所选照片推送到 Firebase 存储并显示在聊天部分

将图像上传到 Firebase 存储的官方文档链接 -> https://firebase.google.com/docs/storage/android/upload-files?authuser=0

我尝试了官方文档代码,但它也不起作用

我遵循的课程链接-> https://classroom.udacity.com/courses/ud0352/lessons/fab5bf81-cfe5-4071-9afe-b6eb324a6257/concepts/27c52d47-50cd-4be1-8d3d-95e3fccebda5

public class MainActivity extends AppCompatActivity {    
    private static final int RC_PHOTO_PICKER =  2;
    private FirebaseStorage mFirebaseStorage;
    private StorageReference mChatPhotosStorageReference;`
    @Override
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        mUsername = ANONYMOUS;
    
        mFirebaseDatabase = FirebaseDatabase.getInstance();
        mFirebaseAuth = FirebaseAuth.getInstance();
        mFirebaseStorage = FirebaseStorage.getInstance();
    
        mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("messages");
        mChatPhotosStorageReference = mFirebaseStorage.getReference().child("photos");
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == RC_SIGN_IN) {
            if (resultCode == RESULT_OK) {
               // Sign-in succeeded, set up the UI
               Toast.makeText(this, "Signed In!", Toast.LENGTH_SHORT).show();
            } else if (resultCode == RESULT_CANCELED) {
               // Sign in was canceled by the user, finish the activity
               Toast.makeText(this, "Sign In Cancelled!", Toast.LENGTH_SHORT).show();
               finish();
            } else if (requestCode == RC_PHOTO_PICKER && resultCode == RESULT_OK) {
               Uri selectedImageUri = data.getData();
    
               // Get a reference to store file at chat_photos/<FILENAME>
               StorageReference photoRef = 
                  mChatPhotosStorageReference.child(selectedImageUri.getLastPathSegment());
    
               // Upload file to Firebase Storage
               photoRef.putFile(selectedImageUri);
               mChatPhotosStorageReference.putFile(selectedImageUri).continueWithTask(task -> {
                    if (!task.isSuccessful()) {
                        throw task.getException();
                    }
                    return mChatPhotosStorageReference.getDownloadUrl();
               }).addOnCompleteListener(task -> {
                    if (task.isSuccessful()) {
                        Uri downloadUri = task.getResult();
                        FriendlyMessage friendlyMessage = new FriendlyMessage(null, mUsername, 
                                   downloadUri.toString());
                        mMessagesDatabaseReference.push().setValue(friendlyMessage);
                    }
               });
            }
       }
}[Chat Activity[After Clicking Picture icon[No response][1]

标签: javaandroidfirebasefirebase-storage

解决方案


推荐阅读