Bob*_*b.B 17 node.js firebase typescript google-cloud-functions
我正在学习使用 Firebase 云函数,我正在关注 Firebase 的官方教程视频学习 JavaScript 承诺(Pt.1)
当我运行本地服务器并转到 HTTP 链接时,我得到
错误:默认 Firebase 应用不存在。确保在使用任何 Firebase 服务之前调用 initializeApp()。
我试图找到解决方案,但找不到任何地方。我有一些模糊相关的问题,但对于 javascript,我的代码是打字稿。我确实在 .js 和 .ts 文件中添加了建议的语法
admin.initializeApp(functions.config().firebase);
Run Code Online (Sandbox Code Playgroud)
但是,我仍然遇到相同的错误
这是我的 index.tcs。
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
// Start writing Firebase Functions
// https://firebase.google.com/docs/functions/typescript
export const getVoucher = functions.https.onRequest((request, response) => {
const promise = admin.firestore().doc('/voucher/Eg2AtnGmKmX8Y0vBZiBG').get()
const p2 = promise.then(snapshot=>{
const data = snapshot.data()
response.send(data)
})
p2.catch(error => {
//Handlle the error
console.log('error: '+error)
response.status(500).send(error)
})
});
Run Code Online (Sandbox Code Playgroud)
该功能在部署到 firebase 时按预期工作。
Dou*_*son 20
您应该只admin.initializeApp()在代码的全局范围内调用。不要传递任何参数来接受默认服务帐号,该帐号应该有权读取和写入您的 Cloud Firestore 数据库。
小智 10
忠告,即使您正确初始化了应用程序,有时也会出现这种情况,此时只需检查您的 db 实例是否放置在函数中而不是全局函数中。
#nodejs
var db = admin.database();//inside function
Run Code Online (Sandbox Code Playgroud)
小智 6
This might sound like crazy, But I had the same issue. Then I've changed my "admin.initializeApp();" place like below. Then it works.
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const express = require('express');
const app = express();
//put here.
admin.initializeApp();
const db = admin.firestore();
const firebaseConfig = {
// config data
};
const firebase = require('firebase');
firebase.initializeApp(firebaseConfig);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16114 次 |
| 最近记录: |