【问题标题】:Collection not Created in Firebase Console未在 Firebase 控制台中创建集合
【发布时间】:2018-03-26 13:02:23
【问题描述】:

我已经实现了一个代码来创建一个名为“用户”的集合。代码运行正常,但没有将我的数据保存在控制台的数据库中。

这是我的代码

user_profile.putFile(imageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
     @Override
     public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> uploadtask) {
         String download_url = uploadtask.getResult().getDownloadUrl().toString();

         if (uploadtask.isSuccessful()){
             Map<String,Object> userMap = new HashMap<>();
             userMap.put("name",user);
             userMap.put("image",download_url);
             firebaseFirestore.collection("Users")
                              .document(user_id).set(userMap)
                              .addOnSuccessListener(new OnSuccessListener<Void>() {
                                   @Override
                                   public void onSuccess(Void aVoid) {
                                       Toast.makeText(RegistrationActivity.this, "Uploaded Successfully", Toast.LENGTH_SHORT).show();
                                       SendToMain();
                                       progressBar.setVisibility(View.INVISIBLE);
                                   }
                              });
          } else {
              Toast.makeText(RegistrationActivity.this, "error: "+uploadtask.getException().getMessage(), Toast.LENGTH_SHORT).show();

          }
      }
});

我不知道出了什么问题以及导致问题的原因。请帮助我。顺便说一句,我是 firebase 新手。

【问题讨论】:

  • 您是否遇到任何错误?
  • 不,没有收到任何错误
  • 您是否尝试过addOnFailureListener 并记录异常?它返回什么?

标签: android firebase google-cloud-firestore


【解决方案1】:

有时最好让 Firebase 商店为您自动创建有意义的 documentID。

你可以试试下面的 add() 函数吗?

    firebaseFirestore.collection("Users").add(UserMap)
    .addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
        @Override
        public void onSuccess(DocumentReference documentReference) {
            Log.d(TAG, "DocumentSnapshot written with ID: " + documentReference.getId());
        }
    })
    .addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.w(TAG, "Error adding document", e);
        }
    });

【讨论】:

  • 我需要用 uid 存储这些数据。当前代码块在 firebase auth 方法中,用户在 firebase 中注册为新用户
  • id 似乎不太可能有问题。但我肯定会在您的代码中添加一个addOnFailureListener 以记录(最好是Log.e)Firestore 报告的任何问题。
  • 感谢大家帮助我,但它突然自动解决了。问题是我只是更改了 Firestore 中的规则,并且花了 10 分钟进行更改,这就是为什么不存储我的数据的原因。从逻辑上讲,你们都是对的。感谢您的帮助
猜你喜欢
  • 2019-10-30
  • 1970-01-01
  • 2022-12-03
  • 2021-11-14
  • 1970-01-01
  • 2020-12-01
  • 2016-11-02
  • 2019-01-31
  • 1970-01-01
相关资源
最近更新 更多