微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 firebase 可调用函数写入 firestore,就好像它是 auth 上下文提供的用户一样

如何解决从 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?