在 firebase 函数错误中获取新创建的文档 ID
Get newly created document ID in firebase functions error
我正在尝试获取新创建的 firestore 文档 ID 并在同一个云函数中使用它,但是我遇到了一些错误!
这是我的云函数:
exports.createNewGroup = functions.https.onCall((data, context) => {
if (!context.auth) {
throw new functions.HttpsError(
'unauthenticated',
'only autehnticated users can make requests!'
);
}
// Save a new group document and get the documents ID
const { id } = admin.firestore().collection('groups').set(data.group);
// Adding the group id to the groupmember object
data.groupMember.groupId = id;
// Save a new groupmember document with the newly created groupid added
admin.firestore().collection('groupMembers').set(data.groupMember);
return 'All is created perfectly';
});
调用函数时,函数日志中出现此错误:
createNewGroup
Unhandled error TypeError: admin.firestore(...).collection(...).set is not a function
不确定我做错了什么,以及如何完成这个?!?!希望得到帮助并提前致谢:-)
set()
方法存在于 DocumentReference
but you are calling it on a CollectionReference
上。如果您尝试添加具有随机 ID 的文档,请改用 add()
方法。 add()
和 set()
return 也是一个承诺,所以确保你处理它们:
exports.createNewGroup = functions.https.onCall(async (data, context) => {
// Async function ^^^^^
if (!context.auth) {
throw new functions.HttpsError(
'unauthenticated',
'only autehnticated users can make requests!'
);
}
const { id } = await admin.firestore().collection('groups').add(data.group);
// await it ^^^^^
// Adding the group id to the groupmember object
data.groupMember.groupId = id;
await admin.firestore().collection('groupMembers').add(data.groupMember);
return 'All is created perfectly';
});
请注意 .doc().set()
也可以用来代替 .add()
。两种方法是等价的。
我正在尝试获取新创建的 firestore 文档 ID 并在同一个云函数中使用它,但是我遇到了一些错误!
这是我的云函数:
exports.createNewGroup = functions.https.onCall((data, context) => {
if (!context.auth) {
throw new functions.HttpsError(
'unauthenticated',
'only autehnticated users can make requests!'
);
}
// Save a new group document and get the documents ID
const { id } = admin.firestore().collection('groups').set(data.group);
// Adding the group id to the groupmember object
data.groupMember.groupId = id;
// Save a new groupmember document with the newly created groupid added
admin.firestore().collection('groupMembers').set(data.groupMember);
return 'All is created perfectly';
});
调用函数时,函数日志中出现此错误:
createNewGroup
Unhandled error TypeError: admin.firestore(...).collection(...).set is not a function
不确定我做错了什么,以及如何完成这个?!?!希望得到帮助并提前致谢:-)
set()
方法存在于 DocumentReference
but you are calling it on a CollectionReference
上。如果您尝试添加具有随机 ID 的文档,请改用 add()
方法。 add()
和 set()
return 也是一个承诺,所以确保你处理它们:
exports.createNewGroup = functions.https.onCall(async (data, context) => {
// Async function ^^^^^
if (!context.auth) {
throw new functions.HttpsError(
'unauthenticated',
'only autehnticated users can make requests!'
);
}
const { id } = await admin.firestore().collection('groups').add(data.group);
// await it ^^^^^
// Adding the group id to the groupmember object
data.groupMember.groupId = id;
await admin.firestore().collection('groupMembers').add(data.groupMember);
return 'All is created perfectly';
});
请注意 .doc().set()
也可以用来代替 .add()
。两种方法是等价的。