【发布时间】:2020-08-15 17:00:14
【问题描述】:
嗯,不完全是同时。更像是一个接一个,在一个 for 循环中。
问题:所以在某些情况下,我使用的代码确实可以创建多个帐户,但它经常给我错误,即用户为空并且无法写入数据库。
代码:
Database db = FirebaseDatabase.getInstance().getReference();
String password = "1234567"; // Same password for all accounts
ArrayList emailArray = new ArrayList(); // For example, 20 premade emails
for (int i = 0; i < emailArray.size(); i++){
mAuth.createUserWithEmailAndPassword((String) emailArray.get(i), password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (mAuth.getCurrentUser() != null) {
String userId = mAuth.getCurrentUser().getUid(); // This value is returning null
// Writing a bunch of things to the database for each user
db.child(userId).child("name").setValue(...)
...
mAuth.signOut();
}
}
});
}
我想我可能必须使用 AuthStateListener,但我不确定,也不知道如何实现它。我将如何实现这一目标?请让我知道我是否应该在我的帖子中包含其他任何内容。谢谢!
【问题讨论】:
标签: java android firebase firebase-realtime-database firebase-authentication