亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase Auth 帳戶已創建,但從未調用過完整的偵聽器

Firebase Auth 帳戶已創建,但從未調用過完整的偵聽器

郎朗坤 2022-06-23 19:38:04
我的主要活動中有這種方法,只有在確認用戶帳戶已成功創建后才能繼續。當我單擊確認時,我可以看到該帳戶是在 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

                }

             });

希望這也能解決您的問題。


查看完整回答
反對 回復 2022-06-23
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

您現在無法退回尚未加載的內容。換句話說,您不能簡單地success在方法之外返回布爾變量,因為由于此方法的異步行為,onComplete()它將始終保持默認值。false這意味著當您嘗試返回該結果時,數據尚未從數據庫中完成加載,這就是無法訪問的原因。這就是為什么保持初始值false不是 true您預期的原因。

解決此問題的一個快速方法是success僅在方法內部使用與變量相關的邏輯onComplete(),否則我建議您從這篇文章中查看我的答案的最后一部分,其中我已經解釋了如何使用自定義回調來完成它。您也可以觀看此視頻以更好地理解。


查看完整回答
反對 回復 2022-06-23
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

遇到了同樣的問題,原來我在 onComplete 結束之前改變了活動。如果您正在更改活動(例如簽名成功后轉到儀表板活動),請確保在 onComplete 任務中調用 startActivity(intent) 成功)



查看完整回答
反對 回復 2022-06-23
  • 3 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號