我正在尝试自动登录FirebaseAuth,但这不起作用 . 当用户输入电子邮件/密码并检查“记住我”时,我想保存令牌以便在下次登录时使用(自动) .

我不知道是否将令牌保存在onAuthStateChanged(FirebaseAuth.AuthStateListener())或onComplete(signInWithEmailAndPassword)中 .

所以,应用程序保持这样:

prefs = getActivity().getSharedPreferences("quinta", Context.MODE_PRIVATE);
editor = prefs.edit();
mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                user = firebaseAuth.getCurrentUser();

                if ( user != null ) {
                    Log.i(TAG,"User: " + user.getDisplayName() + ", " + user.getEmail() + " Sign In");
                    String token = user.getToken(true).toString();
                    editor.putString("token",token);
                    editor.commit();
                } else {
                    Log.i(TAG,"User: " + user.getDisplayName() + " Sign Out");
                }
            }
        };

所以,当应用程序打开时,我尝试登录:

if( prefs.getString("token","aa").length() > 2 ) {
            Log.i(TAG,prefs.getString("token","aa"));
            mAuth.signInWithCustomToken(prefs.getString("token",""));
}

是的,在Log I中检查prefs.getString(“token”,“”)是否包含令牌!最后,我重新打开应用程序,并收到以下错误:

I/AuthChimeraService: Error description received from server: {
                                                      "error": {
                                                       "errors": [
                                                        {
                                                         "domain": "global",
                                                         "reason": "invalid",
                                                         "message": "INVALID_CUSTOM_TOKEN"
                                                        }
                                                       ],
                                                       "code": 400,
                                                       "message": "INVALID_CUSTOM_TOKEN"
                                                      }
                                                     }