我的主要活动中有这种方法,只有在确认用户帐户已成功创建后才能继续。当我单击确认时,我可以看到该帐户是在 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
提交
取消
