如何使用子集合创建文档

时间:2020-05-29 23:15:03

标签: javascript firebase google-cloud-firestore

我找不到一个没有任何字段但只有一个子集合的新文档-消息(此消息集合将包含一些字段)。 这就是我要做的。但是我不想在已经存在的文档中创建子集合。我想在其中创建新文档和子集合。

enter image description here

老实说,我停了下来:

let chatRef = db.collection("chat_event").add({

})

1 个答案:

答案 0 :(得分:2)

This answer将有很大帮助。

let chatRef = db
 .collection("chat_event").document("chat1")
 .collection("messages").document("message1");

如果您不想对父文档的ID进行硬编码,或者如果您想要生成Firestore,则可以。然后首先从Firestore的createId()函数中获取ID。

let chatEventId = db.createId();
let chatRef = db
 .collection("chat_event").document(chatEventId)
 .collection("messages").document("message1");

您仍然可以将自动生成的ID用于子集合的文档:

let chatEventId = db.createId();
let messageId = db.createId();
let chatRef = db
 .collection("chat_event").document(chatEventId)
 .collection("messages").document(messageId);

请注意,firestore的自动生成的ID完全是随机的,因此文档没有按时间顺序存储。如果您仍然需要某种排序,则可以在插入数据时使用这些信息添加时间戳,也可以使用时间戳信息更新文档。

docRef.update({
  timestamp: firebase.firestore.FieldValue.serverTimestamp()
});

因此,您可以在控制台中以及在自己的查询中按时间顺序进行排序。

Check out this answer for more information on auto-generating IDs