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

时间:2017-12-18 15:13:03

标签: angular firebase firebase-realtime-database firebase-authentication google-cloud-firestore

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

每个集合的名称都有uid。 但我不知道如何强迫它? db.createCollection('abcXdefX')不存在。 我不知道该怎么做。请帮忙。

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我正在尝试在文档中创建一个集合,但可接受的答案对我不起作用,但这确实可以做到:

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:-1)

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

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