【问题标题】:Firebase firestore document is not created properlyFirebase Firestore 文档未正确创建
【发布时间】:2018-10-23 14:42:39
【问题描述】:

我正在使用 Cloud Firestore,但由于某种原因,我无法创建新文档(直到现在我可以)

FirebaseFirestore db;

调用方法“createUserDoc”创建新文档

@Override
protected void onStart() {
    super.onStart();
    createUserDoc();
}

方法

    private void createUserDoc() {
    db = FirebaseFirestore.getInstance();
    Map<String, Object> userDetails = new HashMap<>();
    userDetails.put("phone" , phoneNumberEditText.getText().toString());
    db.collection("users")
            .document()
            .set(userDetails)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            Intent i = new Intent(LogingWithPhoneActivity.this,MainActivity.class);
            startActivity(i);
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
        }
    });
}

注意——即使是官方文档中的example 也突然对我不起作用了

【问题讨论】:

  • 您是否收到任何错误?如果官方示例代码也不起作用,则您的项目配置可能存在问题。如果您将示例值写入数据库,例如“db.collections("users").document("test").set("key","value")",它可以工作吗?您是否正确遵循“入门”指南?还要在“onFailure”中插入一个调试行,以便可以读取是否有错误。
  • 我确实在“onFailure”中插入了调试行并且根本没有出错,我得到了0个错误(通常),我认为“onComplete”永远不会被调用(如果它会那么Intent 会将用户移动到下一个屏幕)
  • 如果你尝试使用if语句if (task.isSuccessful()) { // } else { Log.d(TAG, task.getException().getMessage()); }。 logcat 中的结果是什么?
  • @AlexMamo logcat 中的结果什么都没有,我根本没有得到任何打印结果

标签: android firebase google-cloud-firestore


【解决方案1】:

问题是firebase规则配置不正确,更改规则后问题解决了。

奇怪的部分是没有问题,也没有一个错误日志,这很奇怪,因为通常如果 firebase 规则会阻止访问数据,就会有关于此的日志。

无论如何,我所要做的就是更改数据库中的规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 2021-04-02
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2019-06-08
    相关资源
    最近更新 更多