从Firebase Flutter获取文档ID

约翰·乔

将数据存储到Firebase数据库后,我尝试获取新创建的文档ID,但出现错误

E/flutter (20333): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: NoSuchMethodError: The method 'listen' was called on null.
E/flutter (20333): Receiver: null
E/flutter (20333): Tried calling: listen(Closure: (String) => void)

send_data_bloc

 _repository
          .addOrder(order)
          .listen((documentId) => print(documentId));

资料库

@override
  Observable<String> addOrder(Order order) {
      var a = endpoints.collectionEndpoint.add(order.toJson());
      a.then((val) {
        return Observable.fromFuture(val.documentID());
      });

终点

  @override
  get collectionEndpoint => _firestore
      .collection(collectionName)
      .document(this.id)
      .collection(orderCollectionName);
罗德里戈·巴斯托斯(Rodrigo Bastos)

理想情况下,您应该从存储库中返回未来,并等待集团中的未来。让我尝试在此处提供完整的代码段。就像这样:

send_data_bloc

final documentId = await _repository
      .addOrder(order);
print(documentId);
return documentId;

资料库

@override
Future<String> addOrder(Order order) {
  return endpoints.collectionEndpoint.add(order.toJson());

终点

@override
get collectionEndpoint => _firestore
  .collection(collectionName)
  .document(this.id)
  .collection(orderCollectionName);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章