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

Firebase 可调用函数失败

如何解决Firebase 可调用函数失败

即使在第一行代码执行之前,许多函数已经开始间歇性失败并出现以下错误

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

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

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

使用的库及其版本:

> local > this

初始化:

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

解决方法

在 Cloud Functions 中,如果您想与 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。