我的主要活動中有這種方法,只有在確認用戶帳戶已成功創建后才能繼續。當我單擊確認時,我可以看到該帳戶是在 firebase 上創建的,但似乎從未調用過 onCompleteListener,因此我的倒計時鎖存器的值永遠不會減少。public boolean signUpUser(User user){ FirebaseApp.initializeApp(this); FirebaseAuth firebaseAuth=FirebaseAuth.getInstance(); FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance(); // success = false; CountDownLatch countDownLatch = new CountDownLatch(1); Log.e("Account","Creating user"); firebaseAuth.createUserWithEmailAndPassword(user.getEmail(),user.getPassword()).addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(Task<AuthResult> task) { Log.e("Account","User Created"); if(task.isSuccessful()) { //createProfile(user,task); success = true; } countDownLatch.countDown(); } }); try { countDownLatch.await(); } catch (InterruptedException e) { e.printStackTrace(); } return success;}
3 回答

一只甜甜圈
TA貢獻1836條經驗 獲得超5個贊
我曾經遇到過和你幾乎一樣的問題。我所做的就是替換OnCompleteListener為addOnSuccessListener,一切都解決了。
嘗試使用此代碼:
firebaseAuth.signInWithEmailAndPassword(user.getEmail(),user.getPassword())
.addOnSuccessListener(LoginActivity.this, new OnSuccessListener<AuthResult>(){
@Override
public void onsuccess(@NonNull AuthResult authResult){
//try to run something in here
}
});
希望這也能解決您的問題。

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
遇到了同樣的問題,原來我在 onComplete 結束之前改變了活動。如果您正在更改活動(例如簽名成功后轉到儀表板活動),請確保在 onComplete 任務中調用 startActivity(intent) 成功)
添加回答
舉報
0/150
提交
取消