【问题标题】:add a new document in a collection in firestore using flutter使用颤振在firestore的集合中添加新文档
【发布时间】:2020-06-16 13:50:51
【问题描述】:

我正在制作一个购物/销售类型的应用程序。每当任何卖家添加他的产品时,我都想将我的产品列表添加到名为 books 的集合中。我写了

     Firestore.instance.collection('books').add({
         'title':b.title,    //b is an argument I got in the method
     });

但是当我运行它时,Firestore 中没有添加任何集合。 该怎么办? 控制台到这里然后什么都没有发生:

E/flutter (15848): #28 _invoke1 (dart:ui/hooks.dart:275:10) E/flutter (15848): #29 _dispatchPointerDataPacket (dart:ui/hooks.dart:184:5) E/颤动​​(15848):

【问题讨论】:

  • 是否抛出异常?你可以添加一个 .then/.catch 并查看 promise 是否解决或抛出异常(然后记录输出...)

标签: flutter google-cloud-firestore


【解决方案1】:

如果你想制作一个随机id的文档,请将文档中的id保持为空

   Firestore.instance.collection('books').document().setData({
         'title':b.title,    //b is an argument I got in the method
     });

如果要添加具有特定 ID 的文档,请将 ID 放在 document() 中:

   Firestore.instance.collection('books').document("docId").setData({
         'title':b.title,    //b is an argument I got in the method
     });

【讨论】:

  • 检查是否有异常抛出,你也正确连接数据库吧?
  • 是的,当我使用新用户登录时,数据库已正确连接...该用户已正确创建
  • 不会出现错误。只是此代码运行时未创建集合。控制台上的最后一行是 ---> _dispatchPointerDataPacket (dart:ui/hooks.dart:184:5) E/flutter (15848): 之后控制台上没有其他行了。
  • 正如评论中提到的,可能值得使用 .then/.catch 并查看 Promise 是否解决或引发异常。这将为我们提供有关错误的更多信息
  • 我的问题解决了。实际上,我编写的数据库规则阻止了一些权限,这就是没有创建集合的原因。谢谢
【解决方案2】:

我为 Firestone 写的规则的问题。我只是设置了太多限制,所以我的用户没有获得写入数据库的权限。 然后我删除了我写的内容并将规则设置为默认他们写的内容 开始。

【讨论】:

    猜你喜欢
    • 2020-10-23
    • 2022-08-20
    • 1970-01-01
    • 2021-01-25
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    相关资源
    最近更新 更多