java - Firebase的 boolean 函数

标签 java android firebase google-cloud-firestore

我在android应用中工作,但遇到了无法解决的问题,我尝试在google上搜索并以另一种方式进行操作,但我被卡住了。这是我的代码:

private FirebaseAuth mAuth;
private FirebaseFirestore db;
private Boolean complete=false;

public boolean createUser(final String prenom, final String nom, final String mail, final String pass) {
       RegisterActivity ra = new RegisterActivity();
       mAuth = FirebaseAuth.getInstance();
       db = FirebaseFirestore.getInstance();
       mAuth.createUserWithEmailAndPassword(mail, pass).addOnCompleteListener(ra, new OnCompleteListener<AuthResult>() {
             @Override
             public void onComplete(@NonNull Task<AuthResult> task) {
                    mAuth.getCurrentUser().sendEmailVerification();
                    Map<String, Object> user = new HashMap<>();
                    user.put("Mail", mail);
                    user.put("Nom", nom);
                    user.put("Prenom", prenom);
                    user.put("Rang", "Aucun");
                    user.put("Valide", false);
                    db.collection("users").document(mAuth.getCurrentUser().getUid()).set(user).addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            complete=true;
                            Log.w("RESULT",complete.toString());
                        }
                    });
                }
        });
  Log.w("RESULT",complete.toString());
  return complete;
}


我不知道为什么我的函数返回false,日志在第一个“ RESULT false”之后和“ RESULT true”之后说。怎么了 ?

最佳答案

在我看来,这很简单。由于createUserWithEmailAndPassword()是异步的,因此代码将“运行”直到命中代码的第二行。由于其他方法onComplete()尚未将变量标记为true,因此complete仍然为false。所以它基本上是异步的东西。

关于java - Firebase的 boolean 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58367081/

相关文章:

java - 点击提交按钮行为

java - Echo Dot 上的 Alexa 技能测试

java - 重启定时器失败

java - java中归并排序的问题

java - 如何处理 WebView 中的 JavaScript 对话框弹出

android - Helper 文件中用于 Intent 和 Activity 导航的 AtomicReferences

java - 从 google docs 电子表格中读取数据

android - 对 Cloud Firestore 的多次写入是否有任何限制?

javascript - onDelete 数据库触发器未被调用

Angularfire2读取数据一次