【发布时间】:2020-03-04 14:37:21
【问题描述】:
我正在尝试将数据添加到 Firebase Firestore 的文档中。我添加了一个名为 users 的集合。读/写权限现在也是开放的。我正在关注this doc。而且我无法将数据添加到文档中。
这是我想要做的:
private void getNewUserSnapShot() {
FirebaseFirestore db = FirebaseFirestore.getInstance();
FirebaseUser user = firebaseAuth.getCurrentUser();
Log.d(TAG, "getNewUserSnapShot: user_uid: " + user.getUid());
DocumentReference user_doc_ref = db.collection("users").document();
Log.d(TAG, "getNewUserSnapShot: document ref: " + user_doc_ref.getId());
Map<String, Object> user_data = new HashMap<>();
user_data.put("name", user.getDisplayName());
user_data.put("email", user.getEmail());
user_data.put("profile_url", user.getPhotoUrl());
Log.d(TAG, "getNewUserSnapShot: user_data: " + user_data.toString());
user_doc_ref
.set(user_data)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(LoginActivity.this, task.toString(), Toast.LENGTH_LONG).show();
if (task.isSuccessful()) {
Log.d(TAG, "getNewUserSnapShot: success");
} else {
Log.d(TAG, "getNewUserSnapShot: failed");
}
}
});
}
在日志中我只看到这些(失败的日志和成功的日志都没有):
2020-03-04 19:48:47.489 30744-30744/com.example.expenditure D/LoginActivity: getNewUserSnapShot: user_uid: iXOzfju6kORnhuUND8zFCPTzxY93
2020-03-04 19:48:47.499 30744-30744/com.example.expenditure D/LoginActivity: getNewUserSnapShot: document ref: 7AluPzcYMLzDKLh8YtBt
2020-03-04 19:48:47.499 30744-30744/com.example.expenditure D/LoginActivity: getNewUserSnapShot: user_data: {profile_url=https://someurl/security/reasons, name=Nikhil Wagh, email=null}
当我看到 firebase 控制台时,根据应该创建的日志,我找不到 ID 为 7AluPzcYMLzDKLh8YtBt 的文档。
有一个类似的问题:Unable to add information to Cloud Firestore 但它没有正确答案。
有人可以帮忙吗?我做错了什么?
【问题讨论】:
-
您介意用您正在使用的语言标记这个问题吗?
-
所以您说
user.getUid()与添加到数据库中的实际文档ID 不同?请回复@AlexMamo -
No @AlexMamo,
user.getUid()与必须添加的内容无关,只是为了显示user不为空。问题是没有任何东西添加到数据库中。在日志中,我也找不到任何东西。 -
你能添加一张你的数据库结构的图片吗?
-
图片像截图我的数据库?或者只是它应该是怎样的结构? @StackOverflow
标签: android firebase google-cloud-firestore