【问题标题】:Unable to add data to document in firestore (Android)无法将数据添加到 Firestore 中的文档(Android)
【发布时间】: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


【解决方案1】:

问题是 user.getPhotoUrl() 返回 url,但 Firestore 不支持 URL。 url 需要强制转换为字符串,然后才能工作。

在将数据添加到 Firestore 之前将您的网址转换为字符串。

【讨论】:

  • 应该是bug。尝试添加 url 时没有错误或任何东西。日志中应该有一些东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多