3 回答
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個贊
我曾經(jīng)遇到過和你幾乎一樣的問題。我所做的就是替換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貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個贊
您現(xiàn)在無法退回尚未加載的內(nèi)容。換句話說,您不能簡單地success在方法之外返回布爾變量,因?yàn)橛捎诖朔椒ǖ漠惒叫袨椋?code>onComplete()它將始終保持默認(rèn)值。false這意味著當(dāng)您嘗試返回該結(jié)果時,數(shù)據(jù)尚未從數(shù)據(jù)庫中完成加載,這就是無法訪問的原因。這就是為什么保持初始值false而不是 true您預(yù)期的原因。
解決此問題的一個快速方法是success僅在方法內(nèi)部使用與變量相關(guān)的邏輯onComplete(),否則我建議您從這篇文章中查看我的答案的最后一部分,其中我已經(jīng)解釋了如何使用自定義回調(diào)來完成它。您也可以觀看此視頻以更好地理解。
TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個贊
遇到了同樣的問題,原來我在 onComplete 結(jié)束之前改變了活動。如果您正在更改活動(例如簽名成功后轉(zhuǎn)到儀表板活動),請確保在 onComplete 任務(wù)中調(diào)用 startActivity(intent) 成功)
添加回答
舉報(bào)
