Firebase:将文档ID存储在文档本身中,同时作为Map推送

b5lpy0ml  于 2022-12-05  发布在  其他
关注(0)|答案(3)|浏览(160)

因此,我在表单中获取一些用户输入。
例如,字段为[_name, _category, documentID]
表单提交后,数据以Map的形式推送到Firebase,如下所示:

final dbRefItem = FirebaseFirestore.instance.collection("items");

 myMap = {
        "name": _name,
        "category": _category,
        "docReference":  //need doc ref here
      };

dbRefItem.add(myMap);

现在,一旦将此Map提交给Firestore,就会为其提供一个随机ID:我希望将此随机ID一起推入myMap at "docReference"字段。
我知道这个文档还没有创建,所以可能没有办法找到它。但是也许我可以决定用什么引用来推送myMap,这样我就可以把它存储在字段itsef中。

pu3pd22g

pu3pd22g1#

Firestore分配的随机ID在客户端应用程序中生成。您可以通过不带参数调用doc()来生成带有随机ID的引用。

final docRef = FirebaseFirestore.instance.collection("items").doc();

然后,您可以将DocumentReferenceid放入Map中:

myMap = {
    "name": _name,
    "category": _category,
    "docReference": docRef.id
};

然后使用set()编写文档:

docRef.set(myMap);
f2uvfpb9

f2uvfpb92#

let id = 34234fdsf6hfgf //some random id
final dbRefItem = FirebaseFirestore.instance.collection("items").doc(id);  //your id here

 myMap = {
        "name": _name,
        "category": _category,
        "docReference":  id
      };

dbRefItem.set(myMap);

它将使用自定义ID保存文档
1.要生成自定义id,请参阅uuid npm包

crcmnpdw

crcmnpdw3#

通过在添加后调用then()函数,您可以获得id,因为id是创建的。您可以通过值访问id并更新您创建的文档。enter image description here

相关问题