firebase - Firestore/Flutter - 如何获取文档 ID?

标签 firebase flutter google-cloud-firestore

这是我的代码

Future _save() async {

final StorageReference storageRef = FirebaseStorage.instance.ref().child('product/'+nameController.text+'.jpg');
final StorageUploadTask task = storageRef.putFile(_image);
StorageTaskSnapshot taskSnapshot = await task.onComplete;
String downloadUrl = await taskSnapshot.ref.getDownloadURL();
StorageMetadata created = await taskSnapshot.ref.getMetadata();

Firestore.instance.collection('product').document()
    .setData({
  'name': nameController.text,
  'price': int.tryParse(priceController.text),
  'description': descriptionController.text,
  'creator': widget.user.uid,
  'created': DateTime.fromMillisecondsSinceEpoch(created.creationTimeMillis, isUtc: true).toString(),
  'modified': DateTime.fromMillisecondsSinceEpoch(created.updatedTimeMillis, isUtc: true).toString(),
  'url': downloadUrl,
  'id': //I want to set document Id here //
});
}

我怎样才能得到这个随机生成的文档的 ID?
感谢您的帮助

最佳答案

collection您可以添加 document并收到 DocumentReference .

  final docRef = await Firestore.instance.collection('product').add({
    'name': nameController.text,
    'price': int.tryParse(priceController.text),
    'description': descriptionController.text,
    'creator': widget.user.uid,
    'created': DateTime.fromMillisecondsSinceEpoch(created.creationTimeMillis, isUtc: true).toString(),
    'modified': DateTime.fromMillisecondsSinceEpoch(created.updatedTimeMillis, isUtc: true).toString(),
    'url': downloadUrl,
  });

现在您可以获取文档 ID:
 docRef.documentID 

关于firebase - Firestore/Flutter - 如何获取文档 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53605611/

相关文章:

javascript - 解析firebase对象javascript

android - 如何在收到推送通知时自动打开应用程序?

dart - Flutter 中的可折叠列表小部件有哪些选项?

flutter - 如何在 Flutter 中将图像上传到服务器?

javascript - 类型错误 : Cannot read property 'toDate' of undefined

javascript - 渲染数据前添加条件和排序

android - Firebase RecyclerView 图像未显示,其余信息为

flutter - 如何按属性值比较两个对象列表

flutter - Firestore 要求我创建已存在的索引

java - 尝试连接到 FireStore 数据库但收到 "Program type already present: okio.Buffer$2"