Android 当我尝试输入使用firebase存储的特定活动时,应用程序崩溃

Android 当我尝试输入使用firebase存储的特定活动时,应用程序崩溃,android,firebase,google-cloud-firestore,firebase-storage,Android,Firebase,Google Cloud Firestore,Firebase Storage,当我转到特定活动时,应用程序崩溃,该活动使用firebase存储加载图像并显示它,它不会停止,只是在应用程序崩溃时将我发送到另一个活动(主页),这是发生这种情况时我收到的错误: 2021-05-17 02:06:46.967 7520-7639/app.com.health E/StorageException: StorageException has occurred. Object does not exist at location. Code: -13

当我转到特定活动时,应用程序崩溃,该活动使用firebase存储加载图像并显示它,它不会停止,只是在应用程序崩溃时将我发送到另一个活动(主页),这是发生这种情况时我收到的错误:

2021-05-17 02:06:46.967 7520-7639/app.com.health E/StorageException: StorageException has occurred.
        Object does not exist at location.
         Code: -13010 HttpResult: 404
    2021-05-17 02:06:46.969 7520-7639/app.com.health E/StorageException: {  "error": {    "code": 404,    "message": "Not Found.  Could not get object",    "status": "GET_OBJECT"  }}
        java.io.IOException: {  "error": {    "code": 404,    "message": "Not Found.  Could not get object",    "status": "GET_OBJECT"  }}
            at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:434)
            at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:451)
            at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:442)
            at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
            at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:286)
            at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:70)
            at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:62)
            at com.google.firebase.storage.GetDownloadUrlTask.run(GetDownloadUrlTask.java:76)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
            at java.lang.Thread.run(Thread.java:919)
发生这种情况的活动的代码为:

package net.smallacademy.authenticatorapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.webkit.MimeTypeMap;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.EventListener;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.FirebaseFirestoreException;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import com.squareup.picasso.Picasso;

import javax.annotation.Nullable;

public class MainActivity extends AppCompatActivity {
    private static final int GALLERY_INTENT_CODE = 1023 ;
    TextView fullName,email,phone,verifyMsg;
    FirebaseAuth fAuth;
    FirebaseFirestore fStore;
    String userId;
    Button resendCode;
    Button resetPassLocal,changeProfileImage;
    FirebaseUser user;
    ImageView profileImage;
    StorageReference storageReference;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //code for bar
        //initialize  and assign variables
        BottomNavigationView bottomNavigationView=findViewById(R.id.bottom_navigation);
        //set home selected
        bottomNavigationView.setSelectedItemId(R.id.profile);
        //preform itemsselectedlistener
        bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch(item.getItemId()){
                    case R.id.exercice:
                        startActivity(new Intent(getApplicationContext()
                                ,Exercice.class));
                        overridePendingTransition(0,0);
                        finish();
                        return true;
                    case R.id.profile:
                        finish();
                        return true;
                    case R.id.home:
                        startActivity(new Intent(getApplicationContext()
                                ,Home.class));
                        overridePendingTransition(0,0);
                        finish();
                        return true;
                }
                return false;
            }
        });
        //end
        phone = findViewById(R.id.profilePhone);
        fullName = findViewById(R.id.profileName);
        email    = findViewById(R.id.profileEmail);
        resetPassLocal = findViewById(R.id.resetPasswordLocal);

        profileImage = findViewById(R.id.profileImage);
        changeProfileImage = findViewById(R.id.changeProfile);


        fAuth = FirebaseAuth.getInstance();
        fStore = FirebaseFirestore.getInstance();
        storageReference = FirebaseStorage.getInstance().getReference();

        StorageReference profileRef = storageReference.child("users/"+fAuth.getCurrentUser().getUid()+"/profile.jpg");
        profileRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                Picasso.get().load(uri).into(profileImage);
            }
        });

        resendCode = findViewById(R.id.resendCode);
        verifyMsg = findViewById(R.id.verifyMsg);


        userId = fAuth.getCurrentUser().getUid();
         user = fAuth.getCurrentUser();

        if(!user.isEmailVerified()){
            verifyMsg.setVisibility(View.VISIBLE);
            resendCode.setVisibility(View.VISIBLE);

            resendCode.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(final View v) {

                    user.sendEmailVerification().addOnSuccessListener(new OnSuccessListener<Void>() {
                        @Override
                        public void onSuccess(Void aVoid) {
                            Toast.makeText(v.getContext(), "Verification Email Has been Sent.", Toast.LENGTH_SHORT).show();
                        }
                    }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Log.d("tag", "onFailure: Email not sent " + e.getMessage());
                        }
                    });
                }
            });
        }




        DocumentReference documentReference = fStore.collection("users").document(userId);
        documentReference.addSnapshotListener(this, new EventListener<DocumentSnapshot>() {
            @Override
            public void onEvent(@Nullable DocumentSnapshot documentSnapshot, @Nullable FirebaseFirestoreException e) {
                if (e == null) {
                if(documentSnapshot.exists()){
                    phone.setText(documentSnapshot.getString("phone"));
                    fullName.setText(documentSnapshot.getString("fName"));
                    email.setText(documentSnapshot.getString("email"));

                }else {
                    Log.d("tag", "onEvent: Document do not exists");
                }
            }}
        });


        resetPassLocal.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                final EditText resetPassword = new EditText(v.getContext());

                final AlertDialog.Builder passwordResetDialog = new AlertDialog.Builder(v.getContext());
                passwordResetDialog.setTitle("Reset Password ?");
                passwordResetDialog.setMessage("Enter New Password > 6 Characters long.");
                passwordResetDialog.setView(resetPassword);

                passwordResetDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // extract the email and send reset link
                        String newPassword = resetPassword.getText().toString();
                        user.updatePassword(newPassword).addOnSuccessListener(new OnSuccessListener<Void>() {
                            @Override
                            public void onSuccess(Void aVoid) {
                                Toast.makeText(MainActivity.this, "Password Reset Successfully.", Toast.LENGTH_SHORT).show();
                            }
                        }).addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Toast.makeText(MainActivity.this, "Password Reset Failed.", Toast.LENGTH_SHORT).show();
                            }
                        });
                    }
                });

                passwordResetDialog.setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                       // close
                    }
                });

                passwordResetDialog.create().show();

            }
        });

        changeProfileImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // open gallery
                Intent i = new Intent(v.getContext(),EditProfile.class);
                i.putExtra("fullName",fullName.getText().toString());
                i.putExtra("email",email.getText().toString());
                i.putExtra("phone",phone.getText().toString());
                startActivity(i);
//

            }
        });


    }




    public void logout(View view) {
        FirebaseAuth.getInstance().signOut();//logout
        startActivity(new Intent(getApplicationContext(),Login.class));
        finish();
    }


}
package net.smallacademy.authenticatorapp;
导入androidx.annotation.NonNull;
导入androidx.appcompat.app.AlertDialog;
导入androidx.appcompat.app.appcompat活动;
导入android.app.Activity;
导入android.content.ContentResolver;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.net.Uri;
导入android.os.Bundle;
导入android.provider.MediaStore;
导入android.util.Log;
导入android.view.MenuItem;
导入android.view.view;
导入android.webkit.MimeTypeMap;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ImageView;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.google.android.gms.tasks.OnFailureListener;
导入com.google.android.gms.tasks.OnSuccessListener;
导入com.google.android.material.bottomnavigation.BottomNavigationView;
导入com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.auth.FirebaseUser;
导入com.google.firebase.firestore.DocumentReference;
导入com.google.firebase.firestore.DocumentSnapshot;
导入com.google.firebase.firestore.EventListener;
导入com.google.firebase.firestore.FirebaseFirestore;
导入com.google.firebase.firestore.FirebaseFirestoreException;
导入com.google.firebase.storage.firebase存储;
导入com.google.firebase.storage.StorageReference;
导入com.google.firebase.storage.UploadTask;
导入com.squareup.picasso.picasso;
导入javax.annotation.Nullable;
公共类MainActivity扩展了AppCompatActivity{
专用静态最终int画廊\u意向\u代码=1023;
text查看全名、电子邮件、电话、verifyMsg;
弗斯;
FirebaseFirestore商店;
字符串用户标识;
按钮重新发送代码;
按钮resetPassLocal,changeProfileImage;
FirebaseUser用户;
图像视图轮廓图像;
StorageReference-StorageReference;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//条形码
//初始化并分配变量
BottomNavigationView BottomNavigationView=findViewById(R.id.bottom\u导航);
//设置已选择的原点
bottomNavigationView.setSelectedItemId(R.id.profile);
//预成型项SelectedListener
bottomNavigationView.setOnNavigationItemSelectedListener(新的bottomNavigationView.OnNavigationItemSelectedListener(){
@凌驾
公共布尔值onNavigationItemSelected(@NonNull MenuItem item){
开关(item.getItemId()){
案例R.id.exercice:
startActivity(新意图(getApplicationContext)()
,练习类);
覆盖转换(0,0);
完成();
返回true;
案例R.id.profile:
完成();
返回true;
案例R.id.home:
startActivity(新意图(getApplicationContext)()
,Home.class));
覆盖转换(0,0);
完成();
返回true;
}
返回false;
}
});
//结束
电话=findViewById(R.id.profilePhone);
fullName=findviewbyd(R.id.profileName);
email=findviewbyd(R.id.profileEmail);
resetPassLocal=findviewbyd(R.id.resetPasswordLocal);
profileImage=findviewbyd(R.id.profileImage);
changeProfileImage=findviewbyd(R.id.changeProfile);
fAuth=FirebaseAuth.getInstance();
fStore=FirebaseFirestore.getInstance();
storageReference=FirebaseStorage.getInstance().getReference();
StorageReference profileRef=StorageReference.child(“用户/”+fAuth.getCurrentUser().getUid()+“/profile.jpg”);
profileRef.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){
@凌驾
成功时的公共无效(Uri){
Picasso.get().load(uri).into(profileImage);
}
});
resendCode=findviewbyd(R.id.resendCode);
verifyMsg=findViewById(R.id.verifyMsg);
userId=fAuth.getCurrentUser().getUid();
user=fAuth.getCurrentUser();
如果(!user.isEmailVerified()){
verifyMsg.setVisibility(View.VISIBLE);
resendCode.setVisibility(View.VISIBLE);
resendCode.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(最终视图v){
user.sendEmailVerification().addOnSuccessListener(新OnSuccessListener()){
@凌驾
成功时公开作废(作废避免){
Toast.makeText(v.getContext(),“验证电子邮件已发送。”,Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Log.d(“tag”、“onFailure:Email not sent”+e.getMessage());
}
});
}
});
}
DocumentReference=fStore.collection(“用户”).document(userId);
documentReference.addSnapshotListener(这个,新的EventListener(){
@凌驾
public void onEvent(@Nullable D