无法解析方法“ addOnClickListener”

时间:2019-09-14 06:11:36

标签: java android firebase firebase-authentication

SnapShot无法解析方法'addOnCompletionListener(com.myAppliction.signup,匿名com.google.android.gms.tasks.OnCompletionListener)

我正在尝试在Firebase中添加用户,但此错误不断出现。

Map<String, Object> user = new HashMap<>();
user.put("Username", username);
user.put("Password", password);
user.put("email", email);
db.collection("users").add(user).addOnCompleteListener(signup.this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    Log.d("signUpSuccessful", "createUserWithEmail:onComplete:" + task.isSuccessful());
                    if (!task.isSuccessful()) {
                        FirebaseAuthException e = (FirebaseAuthException )task.getException();
                        Toast.makeText(signup.this, "Failed Registration: "+e.getMessage(), Toast.LENGTH_SHORT).show();
                        return;                    
                        }

                    // ...
                 }
});

2 个答案:

答案 0 :(得分:2)

您的代码中的问题是您要添加类型为AuthResult而不是DocumentReference的完整侦听器。在对用户进行身份验证时,将使用添加的侦听器,在将用户添加到数据库时,将使用。因此,以下代码将达到目的:

db.collection("users").add(user).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
    @Override
    public void onComplete(@NonNull Task<DocumentReference> task) {
        if (task.isSuccessful()) {
            //User successfully added
            Toast.makeText(signup.this, "Failed Registration: "+e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }
});

答案 1 :(得分:0)

尝试将其移动到View的onCreateView中。当您将其写入匿名类时,会发生此错误。 请把图片链接放在正确的位置,并尽可能地共享signup.java的代码,因为addOncompletelistner内部没有问题