如何使用云函数将文档的 ID 写入文档本身?



当创建一个新用户时,我希望有一个云函数在我的users集合中插入一条新记录。我试着用下面的代码这样做,但是当我检查我的日志时,它给出了这个错误:

TypeError:无法读取未定义的属性'resourcePath'/workspace/node_modules…

我想这样做的原因是因为我希望能够将文档ID存储在文档本身中。这将用作"行指针"。像在SQL中一样——一种唯一的方式来标识集合中的行。

代码:

exports.newUserSignup = functions.auth.user().onCreate(user => {
console.log('user created', user.email, user.uid);
const doc = admin.firestore().collection('users').doc
return doc(user.uid).set({
createDate: admin.database.ServerValue.TIMESTAMP,
modifiedDate: admin.database.ServerValue.TIMESTAMP,
username: 'blah',
email: user.email,    
stat: 1,
uid: user.uid,
rowpointer: doc().id,
});
});

差不多完成了,但是代码中有一些语法错误。这个应该更接近:

exports.newUserSignup = functions.auth.user().onCreate(user => {
console.log('user created', user.email, user.uid);
const doc = admin.firestore().collection('users').doc();
return doc.set({
createDate: admin.database.ServerValue.TIMESTAMP,
modifiedDate: admin.database.ServerValue.TIMESTAMP,
username: 'blah',
email: user.email,    
stat: 1,
uid: user.uid,
rowpointer: doc.id,
});
});

我强烈建议保持参考文档方便,当你有麻烦与这种类型的练习,因为我发现问题相当快时,看CollectionReference.doc()DocumentReference

相关内容

  • 没有找到相关文章

最新更新