【问题标题】:Firebase callable functions failFirebase 可调用函数失败
【发布时间】:2021-09-16 06:18:34
【问题描述】:

甚至在执行第一行代码之前,许多函数就开始间歇性地失败并出现以下错误:

FIREBASE 警告:{"code":"app/invalid-credential","message":"通过“credential”属性提供给 initializeApp() 的凭据实现未能获取有效的 Google OAuth2 访问令牌,并出现以下错误:“无法解析访问令牌响应:SyntaxError:JSON 中位置 4 的意外令牌 p”。”}

自从我提出 Firebase 支持的错误问题以来已经超过 5 天五天了,但我仍然没有任何反馈。

有人知道为什么会发生这种情况以及如何解决吗?

使用的库及其版本:

"firebase": "^8.2.9",
"firebase-admin": "^9.5.0",
"firebase-functions": "^3.1.0"

初始化:

const functions = require('firebase-functions');

const admin = require('firebase-admin');
admin.initializeApp();

var config = {
    apiKey: "...",
    authDomain: "...",
    databaseURL: "..."
};
var firebase = require("firebase");
firebase.initializeApp(config);

【问题讨论】:

  • 您能否展示versions of the SDKs 以及您如何加载所需的模块并初始化管理应用程序实例?
  • 我已修改帖子以回答您的问题。感谢您抽出宝贵时间。

标签: firebase function oauth-2.0 google-cloud-functions callable


【解决方案1】:

在 Cloud Function 中,如果您想与 Firebase 服务(例如 Firestore、Auth 服务等)进行交互,您需要使用 Admin SDK

因此,您需要加载 firebase-functionsfirebase-admin 模块,并初始化您与服务交互的 admin 应用实例,如下所示:

const functions = require('firebase-functions');

const admin = require('firebase-admin');
admin.initializeApp();

const firestoreDB = admin.firestore();
const authService = admin.auth();

// ... 

// Examples:

// In a Cloud Function
return firestoreDB.collection("cities").doc("LA").set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
});


// In another Cloud Function
return authService.updateUser(uid, {
   email: 'modifiedUser@example.com',
   phoneNumber: '+11234567890',
})
.then((userRecord) => {
  // ...
  // return ...
})

换句话说,你不需要这样做:

var config = {
    apiKey: "...",
    authDomain: "...",
    databaseURL: "..."
};
var firebase = require("firebase");
firebase.initializeApp(config);

另请注意doc 中的此注释:

在许多情况下,新功能和错误修复仅适用于 最新版本的 Firebase CLI 和 firebase-functions SDK。 经常更新 Firebase CLI 和 带有这些命令的 SDK 在您的函数文件夹中 Firebase 项目

npm install firebase-functions@latest firebase-admin@latest --save

npm install -g firebase-tools

【讨论】:

    猜你喜欢
    • 2018-10-31
    • 2021-09-08
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多