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;
}
// ...
}
});
答案 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内部没有问题