任何人都可以验证您是否需要 Firebase 功能的服务帐户密钥吗?

问题描述 投票:0回答:1

在 Google Firebase 团队制作的这段视频中,您似乎不需要服务帐户密钥 https://www.youtube.com/watch?v=2u6Zb36OQjM

有人可以在没有它的情况下使用功能吗?

我知道它可以这样工作:

import * as v1 from "firebase-functions/v1";
import admin from "firebase-admin";
admin.initializeApp();
const db = admin.firestore();

export const createuserdocument = v1.auth.user().onCreate((user) => {
  const result = db.collection("users")
    .doc(user.uid)
    .set(JSON.parse(JSON.stringify(user)));
    console.log(result);
    return result
});

有人说这对他们有用,但对我来说似乎不起作用。传递项目ID

import * as v1 from "firebase-functions/v1";

import admin from "firebase-admin";
admin.initializeApp({projectId: 'project-id'});
const db = admin.firestore();

export const createuserdocument = v1.auth.user().onCreate((user) => {
  const result = db.collection("users")
    .doc(user.uid)
    .set(JSON.parse(JSON.stringify(user)));
    console.log(result);
    return result
});

这些是在创建帐户时在 Firestore 中创建用户的示例。

我不知道暴露服务帐户密钥是否存在安全风险,或者是使 Firebase 功能正常工作的唯一合法方法。

node.js firebase google-cloud-functions firebase-admin
1个回答
0
投票

当您不带参数调用

admin.initializeApp()
时,它将尝试使用运行时环境来查找任何凭据。在 Cloud Functions 中运行时,它将使用部署它的项目的默认服务帐户凭据。

来自 Firebase Admin SDK 的文档

由于默认凭据查找在 Google 环境中是完全自动化的,无需提供环境变量或其他配置,因此强烈建议在 Cloud Run、App Engine 和 Cloud Functions 等 Google 环境中运行的应用程序使用这种初始化 SDK 的方式。

© www.soinside.com 2019 - 2024. All rights reserved.