如何从 Javascript 在 Cloud Firestore 中创建集合?

Posted

技术标签:

【中文标题】如何从 Javascript 在 Cloud Firestore 中创建集合?【英文标题】:How to create collection in Cloud Firestore from Javascript? 【发布时间】:2018-05-31 23:06:17 【问题描述】:

当用户在我的 Angular 应用中创建帐户时,我的应用会使用电子邮件和密码创建用户帐户(使用 Firebase API)。但我也想创建新的集合来保存更多的数据,比如名字、姓氏......

每个集合的名称都会有 uid。 但是不知道怎么强求? db.createCollection('abcXdefX') 不存在。 我不知道该怎么办。请帮忙。

【问题讨论】:

【参考方案1】:

在 Firestore 中,当您将文档添加到不存在的集合中时,无需专门创建该集合即可创建该集合。例如,

firebase.firestore().collection("new-coll").add("Hello":"World")

如果集合new-coll 不存在,则创建它,并将文档"Hello": "World" 添加到其中。

【讨论】:

【参考方案2】:

您还可以在集合内创建文档。您不必每次都创建不同的集合。

db.collection("users").doc("userid").set(
    username: 'username',
    password: 'password', 
    email: 'email', 
    age: 'age' 
)

【讨论】:

【参考方案3】:

我试图在文档中创建一个集合,但接受的答案对我不起作用,但这样做:

db
    .collection("coll1")
    .doc("doc1")
    .collection("newCollectionName")
    .doc("newDocName")
    .set(data);

【讨论】:

【参考方案4】:

你不能创建空集合,你必须在里面创建文档。 data model

function writeUserData(userId, name, email, imageUrl) 
      firebase.database().ref('users/' + userId).set(
        username: name,
        email: email,
        profile_picture : imageUrl
      );
    

可以通过这种方式获取用户id

var userId = firebase.auth().currentUser.uid;

对于云火库

db.doc(userId + '/data').set(
  name: name,
  email: email
);

firebase doc - read&write

【讨论】:

感谢您的回答,但我不想拥有“用户”收藏。集合的名称是 userId。 所以把路径改成这样:firebase.database().ref(userId) 您无法创建空集合,因此您需要创建一些文档,例如 db.collection(userId).doc("data").set( name: "username" )

以上是关于如何从 Javascript 在 Cloud Firestore 中创建集合?的主要内容,如果未能解决你的问题,请参考以下文章