【发布时间】:2020-01-26 11:44:35
【问题描述】:
关于为什么会发生的任何建议。
我用过下面提到的方式:
FirebaseFirestore dbFirestore;
dbFirestore = FirebaseFirestore.getInstance();
在上传时我以这种方式使用它:
documentReference= dbFirestore.collection("CLIENT_DETAIL").document(mAuth.getUid());
documentReference.set(userData);
我无法在 Firestore 上编写它,我尝试了许多不同的可能性。
但是,有时它会在我尝试登录时写入,但在注册时执行代码时不会写入。当它写入时,即使在使用所有字段键调用后,我也无法读取它。
有什么建议吗??比如我为什么会发生,或者我是否需要在 GCP 有一个结算帐户。 请,任何人。这是我试图弄清楚的一天。
mDocumentReferance.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
storeType= documentSnapshot.getString("STORE_TYPE");
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.i(TAG, "onFailure: unable to fetch the document");
}
});
它是读取它的代码,但它不起作用
这是 Task.isSuccessfull 上的代码
if (task.isSuccessful()) {
Log.i(TAG, "onComplete: creating folders based type ");
OnAuth(task.getResult().getUser());
sendEmailVerification();
mAuth.signOut();
SharedPreferences storeNamePreference= getSharedPreferences("UserDetails",MODE_PRIVATE);
userData.put(RESTAURANT_UID,storeNamePreference.getString("UserUID",""));
dbFirestore.collection("CLIENT_DETAIL").document(storeNamePreference.getString("UserUID","")).set(userData).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.i(TAG, "onSuccess: Database referance is created");
mDialog.dismiss();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.i(TAG, "onFailure: database referance is not created");
}
});
Intent intent = new Intent(SignupActivity.this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
因为我已经在 SharedPreferences 中保存了用户 UID 值,所以我在那里调用它。 我在上面的代码中做错了吗?
我确实有用户 UID 的值。
【问题讨论】:
-
我想创建用户注册成功的数据库。但是,在调试之后,我发现我能够从数据库中获取参考。问题是数据没有从 createUserWithEmailAndPassword() 方法内部上传
-
我的意思是日志是 mDocumentReference.get().add().add();
-
您是否启用了数据库中的规则以在用户通过身份验证时进行读写? ,您是否在清单中添加了互联网权限?
-
@GastónSaillén,是的,我添加了 Internet 用途。关于规则,我不太确定,但它保存为“allow read, write: if true;”。
-
我已经在“ mAuth.createUserWithEmailAndPassword() ”方法中添加了创建 Firestore 数据库的代码,这样当用户成功注册时我就能够创建数据库,而这并没有发生。但是在调试时引用被正确调用,并且当我尝试登录而不是尝试注册时创建了 Forestore 数据库,并且我得到了 null 接受。
标签: java android firebase google-cloud-firestore