Firestore 将数据本地保存在设备上,但不会推送到 Firebase 控制台

问题描述 投票:0回答:1

我正在开发一个 Flutter 应用程序,我想将条目保存到 Firebase Firestore 中的用户特定子集合下。数据似乎已成功添加到设备上,但从未出现在 Firestore 控制台中。相反,数据似乎仅缓存在设备本地,并且我不断在日志中看到以下消息:

[WatchStream]:(be43146) 流已关闭,状态:Status{code=NOT_FOUND,description=项目的数据库(默认)不存在 请访问 https://console.cloud.google.com/datastore/setup ?project= 添加 Cloud Datastore 或 Cloud Firestore 数据库。 ,原因=空}。

这是我尝试过的:

  1. Firestore 数据库设置:我已在 Firebase 控制台中设置 Firestore 并确认我使用的是正确的项目配置文件(对于 Android 为
    google-services.json
    )。
  2. Firebase 初始化:Firebase 已在我的应用程序中使用
    Firebase.initializeApp()
    成功初始化。
  3. 权限和规则:我已经检查了 Firestore 规则,它们当前允许经过身份验证的用户进行读取和写入操作:
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

这是我用来向 Firestore 添加数据的函数:

void addUrl() async {
  if (urlController.text.isNotEmpty) {
    final currentUser = auth.currentUser;

    if (currentUser != null) {
      await firestore
          .collection('users')
          .doc(currentUser.uid)
          .collection('urls')
          .add({
        'url': urlController.text,
        'timestamp': FieldValue.serverTimestamp(),
      });

      // Clear the text field after adding to Firestore
      urlController.clear();
    } else {
      developer.log("User is not signed in");
    }
  }
}

尽管成功调用此函数并清除文本字段,但数据似乎仅缓存在设备本地。 Firestore 控制台仍为空。

android flutter firebase google-cloud-firestore
1个回答
0
投票

错误消息显示:

项目的数据库(默认)不存在

因此,您需要单击错误消息中的链接(这确保它打开正确的项目),并确保其中有一个默认数据库(因此名为

(default)
)。如果没有,您需要创建一个错误才能消失。

© www.soinside.com 2019 - 2024. All rights reserved.