Node.js firebase 集成
2020-04-22
147
我希望你能帮助我,我正在使用 Node.js(无状态)制作一个连接到 Firebase 的 API,主要目标是创建用户并处理集合(添加、编辑、查阅)信息,我正在使用以下 Firebase 模块
const firebase = require('firebase');
firebase.initializeApp(firebaseConfig);
当我尝试插入数据时,因此没有用户登录,并且插入信息或删除或修改的方法,我收到用户权限错误。
代码示例:
const db = firebase.firestore();
let botRef = db.collection('bot').doc(bot.botId);
botRef.get().then(function(doc) {
if (doc.exists) {
botRef.update({ color: bot.color, botname: bot.botname, welcomemessage: bot.welcomemessage });
我该怎么办?还是我应该使用 Firebase 的管理模块?因为在这个 API 中没有登录 Firebase(因为它是一个无状态 API)感谢您的帮助
2个回答
您应该为此使用 Firebase Admin SDK。它只是包装了用于节点的 Google Cloud Firestore SDK,因此它具有与其相同的 API。
您需要使用服务帐户初始化 SDK。然后,您的代码将对数据库中的所有内容具有完全的读写权限,从而绕过您为实际用户设置的任何安全规则。
Doug Stevenson
2020-04-22
像这样替换模块:
import * as functions from 'firebase-functions';
import admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
顺便说一句,在部署程序之前,不要忘记安装
firebase-admin
。在终端中运行此命令进行安装:
$ npm install firebase-admin --save
。
这将授予您的云函数管理员权限,这意味着对读取或写入数据没有任何限制。
即使您有任何 firebase 实时数据库或 cloud firestore 规则,它也会覆盖它们。
Dharmaraj
2020-04-22