![](/img/trans.png)
[英]FirebaseUI auth redirecting before Firestore document is created
[英]Firestore document not getting created
我正在尝试创建一个 Firestore 文档,该文档由一个文档组成,该文档的键是 Web URL,值是文档的集合。 我使用 URL 和用户 ID 指定文档引用,如下所示:
private String replaceSlashSeparators(String url) {
return url.substring(0, 8) + url.substring(8).replaceAll("/", "%2F");
}
private void postComment(String page_url, String userID, String subj, String msg) {
DocumentReference mLinkDocRef = db.collection("links").document(replaceSlashSeparators(page_url)).collection("comments").document(userID);
Map<String, Object> data = new HashMap<>();
data.put(FSNAME, mUsername);
data.put(FSIMGURL, mPhotoUrl);
data.put(FSDEVICEID, deviceID);
data.put(FSSUBJECT, subj);
data.put(FSCOMMENT, msg);
mLinkDocRef.set(data)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(task -> {
if (!task.isSuccessful()) {
Log.e(TAG, "Listen failed.", task.getException());
crashlytics.log("Listen failed." + Objects.requireNonNull(task.getException()).getMessage());
return;
}
showCommentPostedDialog();
});
Log.d(TAG, "DocumentSnapshot successfully written!");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "Error writing document", e);
Toast.makeText(context, e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
}
});
我希望在“链接”集合中看到一个包含 URL 的文档和具有上述数据的“评论”文档,但没有创建任何文档。 set() 调用 onSuccess(),因此应该已经创建了文档。 任何人都知道为什么会这样?
这很尴尬。 事实证明我的代码是正确的。 文档没有出现的原因是因为我必须刷新集合。 我过去从来不需要这样做来让文档出现,但我想当你有一个较长的层次结构时,这是必要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.