如何解决从 firebase 可调用函数写入 firestore,就好像它是 auth 上下文提供的用户一样
在 firebase 可调用函数中,我们得到了一个方便的上下文参数,其中包括身份验证数据,包括 uid。我已经正确定义了我的 firestore 规则,这些规则基于登录用户工作。有没有办法使用这个上下文从服务器上写,就好像它是用户一样,所以规则适用?
一个简单的例子:
export const firestoreCreateDocumentOnCall = functions
.region(...regions).https.onCall(async (data,context) => {
try {
const path = data.path as string;
const docData = data.data as any;
// ! This writes as admin,I would like as if it were the user provided by context !
await admin.firestore().doc(path).set(docData);
return;
} catch(error) {
console.error(`Error: ${error}`);
return { error };
}
});
解决方法
从 Cloud Functions 中访问 Firestore 是通过 Admin SDK 进行的,该 SDK 以管理权限运行。无法通过 Admin SDK 以备用用户身份访问 Firestore。
我能想到的唯一替代方法是通过其 REST API 访问 Firestore,但我从未尝试过,而且它绝对不如使用 SDK 方便。
另见:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。