翻過(guò)高山走不出你
2023-06-21 15:48:36
(user = firebaseAuth.getCurrentUser();)Firebase 用戶在第一次調(diào)用后返回 null 。當(dāng)?shù)谝淮伟惭b應(yīng)用程序時(shí),它firebaseAuth.getCurrentUser()會(huì)返回用戶,但是當(dāng)它從第一個(gè)活動(dòng)移動(dòng)到另一個(gè)活動(dòng)時(shí),firebaseAuth.getCurrentUser()每次都會(huì)返回 null 之后調(diào)用 sigh Out 按鈕。package com.example.firebaselogin;import androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import android.app.ProgressDialog;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;import com.google.android.gms.tasks.OnCompleteListener;import com.google.android.gms.tasks.Task;import com.google.firebase.auth.AuthResult;import com.google.firebase.auth.FirebaseAuth;import com.google.firebase.auth.FirebaseUser;public class logIn extends AppCompatActivity { EditText userName, pwd; TextView signUpHere; Button loginButton; private FirebaseAuth firebaseAuth; //private FirebaseAuth.AuthStateListener listener; ProgressDialog progressDialog; FirebaseUser user; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_log_in); firebaseAuth = FirebaseAuth.getInstance(); progressDialog = new ProgressDialog(this); user = firebaseAuth.getCurrentUser(); userName = findViewById(R.id.userName); pwd = findViewById(R.id.pwd); signUpHere = findViewById(R.id.signUpHere); loginButton = findViewById(R.id.loginButton);當(dāng)?shù)趂irebaseAuth.getCurrentUser()一次被調(diào)用時(shí),它是返回 (2019-08-29 00:08:14.561 8165-8165/com.example.firebaselogin I/Userrrr: com.google.firebase.auth.internal.zzk@44ffb65) 但在下一個(gè)活動(dòng)觸發(fā)注銷后, firebaseAuth.getCurrentUser() 每次都會(huì)返回 null 2019-08-29 00:08:24.651 8165-8165/com.example.firebaselogin I/Userrrr: null``
2 回答

largeQ
TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
如我所見,您在簽署用戶之前檢查用戶是否為空。因此,當(dāng)用戶注銷并再次嘗試登錄時(shí),現(xiàn)在用戶為空。根據(jù)你的情況,如果用戶不為null,則全部登錄,其他則不會(huì)。由于用戶為空,它總是失敗并且用戶無(wú)法登錄。刪除該條件,您就可以開始了。

天涯盡頭無(wú)女友
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
每當(dāng)您注銷用戶并調(diào)用代碼時(shí)
FirebaseAuth.getInstance().signOut();
它將清除由 firebase 維護(hù)的會(huì)話。但如果signOut()
不調(diào)用,那么會(huì)話仍然存在,并且用戶不會(huì)為空。所以每當(dāng)你打電話時(shí)signOut()
,你都會(huì)得到 user null
。因此,只需刪除user != null
條件,您就可以登錄。
添加回答
舉報(bào)
0/150
提交
取消