无法再从 Firebase 数据库获取数据?

时间:2021-07-30 23:25:17

标签: java android firebase firebase-realtime-database

我为我的用户开设了一个名为“User”的课程。所有的 getter 和 setter 都是正确的。我在主要活动中初始化了“mUser”以供应用程序全局使用(MainActivity.mUser)。

Log.i("..............UID Used", auth.getCurrentUser().getUid()); 为用户返回正确的 Uid。

我正在努力解决的是在 try/catch 块中没有执行任何操作。目录中没有记录任何内容,应用程序崩溃。它不会转到 onComplete、onFail,也不会捕获异常。应用程序只是转到下一部分代码,该部分引用从该块中提取的数据,并由于 mUser 的值全部为空而给出错误。

它正在工作,然后突然停止,我不确定为什么。任何人都可以对此有所了解吗?

private void getUserProfileInfo() {
    MainActivity.mUser.clearUser();
    FirebaseAuth auth = FirebaseAuth.getInstance();
    Log.i("..............UID Used", auth.getCurrentUser().getUid());
    FirebaseDatabase firebaseDatabase = FirebaseDatabase
            .getInstance("https://godsvong-default-rtdb.firebaseio.com/");
    DatabaseReference databaseReference = firebaseDatabase.getReference();
    try {
        databaseReference.child("User_Profiles").child(auth.getCurrentUser().getUid())
                .get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DataSnapshot> task) {
                MainActivity.mUser = task.getResult().getValue(User.class);
                Log.i("Get Data", "SUCCESS!!!!!");
                MainActivity.mUser.showUserDataInCatlog();
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.i("Get Data", "FAILED!!!!!");
            }
        });
    }
    catch (Exception e){
        Log.i(".............ERROR", e.toString());
    }

    String path = MainActivity.mUser.getmProfilePicUrl();
    //MainActivity.mUser.showUserDataInCatlog();
    //Log.i(".............PATH", MainActivity.mUser.getmProfilePicUrl());
    //Log.i(".............PATH", path);

    StorageReference gsReference = FirebaseStorage.getInstance()
            .getReferenceFromUrl(path);

Firebase Database

逻辑猫:

W/System: Ignoring header X-Firebase-Locale because its value was null.
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
W/System: Ignoring header X-Firebase-Locale because its value was null.
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/..............UID Used: 3jdmmGvAh4Q8KSvG6m9aSFLOXuG2
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.hsquaredtechnologies.godsvong, PID: 9974
    java.lang.IllegalArgumentException: location must not be null or empty
        at com.google.android.gms.common.internal.Preconditions.checkArgument(com.google.android.gms:play-services-basement@@17.1.0:35)
        at com.google.firebase.storage.FirebaseStorage.getReferenceFromUrl(FirebaseStorage.java:282)
        at com.hsquaredtechnologies.godsvong.ui.logout.LogoutFragment.getUserProfileInfo(LogoutFragment.java:268)
        at com.hsquaredtechnologies.godsvong.ui.logout.LogoutFragment.lambda$onViewCreated$1$LogoutFragment(LogoutFragment.java:186)
        at com.hsquaredtechnologies.godsvong.ui.logout.LogoutFragment$$ExternalSyntheticLambda2.onComplete(Unknown Source:8)
        at com.google.android.gms.tasks.zzj.run(Unknown Source:4)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:8512)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1139)
I/Process: Sending signal. PID: 9974 SIG: 9

0 个答案:

没有答案