未找到某些请求的文件。-firestore flutter

Arv*_*esh 2 dart firebase flutter google-cloud-firestore

在我的 flutter 应用程序中,当用户创建一个帐户时,我需要创建一个新文档并为 firestore 中的新字段创建和设置值。当用户创建自己的帐户,我叫await Database().updateusername(email);这是

Future updateusername(String username) async {
    final DocumentReference Docreference =
        FirebaseFirestore.instance.collection("Songs").doc(username);
    return await Docreference.update({"Username": username});
  }
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误

cloud_firestore/not-found] 未找到某些请求的文档。

我的Firestore版本是^0.14.0+2

有人可以帮我解决这个问题吗

Dou*_*son 7

该错误消息告诉您,未找到您构建引用的文档以进行更新。您不能update()不存在的文档。根据该链接的 API 文档:

如果尚不存在文档,则更新将失败。

如果要创建一个不存在的文档,则需要使用set()而不是 update。如果您希望能够在不存在的情况下创建文档,或者在已经存在的情况下更新它,则应将其SetOptions.merge作为第二个参数传递,如 API 文档所述。