Flutter Firestore使用自定义ID添加新文档

时间:2019-03-24 21:40:09

标签: dart flutter google-cloud-firestore

如何使用Dart和Flutter添加具有自定义ID的新文档?

  

PS:我可以使用此代码将新文档添加到集合中,但其ID会随机设置

     

postRef.add(data);

     

其中postRefCollectionReferencedataMap<String, dynamic>

4 个答案:

答案 0 :(得分:1)

您可以使用set函数代替add

完整的代码:

final CollectionReference postsRef = Firestore.instance.collection('/posts');

var postID = 1;

Post post = new Post(postID, "title", "content");
Map<String, dynamic> postData = post.toJson();
await postsRef.document(postID).setData(postData);

我希望能帮助任何人。

答案 1 :(得分:0)

String uniqueCode = //Your Unique Code
DocumentReference reference = Firestore.instance.document("test/" + uniqueCode );

//Setting Data
Map<String, String> yourData;
reference.setData(yourData);

答案 2 :(得分:0)

您可以尝试使用此代码插入带有 customID 的新文档

    DocumentReference<Map<String, dynamic>> users = FirebaseFirestore
              .instance
              .collection('/users')
              .doc("MyCustomID");
          var myJSONObj = {
            "FirstName": "John",
            "LastName": "Doe",
          };
          users
              .set(myJSONObj)
              .then((value) => print("User with CustomID added"))
              .catchError((error) => print("Failed to add user: $error"));

答案 3 :(得分:0)

2021 年更新:

不要使用 add,而是在文档上使用 set

var collection = FirebaseFirestore.instance.collection('collection');
collection 
    .doc('doc_id') // <-- Document ID
    .set({'age': 20}) // <-- Your data
    .then((_) => print('Added'))
    .catchError((error) => print('Add failed: $error'));