2016-11-12 75 views
7

我有一個Firebase數據庫最多鏈接兩個應用程序,一個是iOS應用程序,另一個是以節點編碼的Web應用程序。 js是一種將數據設置到數據庫的基本算法。當過我運行的算法我面臨與 -錯誤:未創建Firebase應用程序'[DEFAULT]' - 調用Firebase App.initializeApp()

Error: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp(). at Error (native) at R (/Users/dd/Desktop/Code/NODE/node_modules/firebase/app-node.js:22:335) at a (/Users/dd/Desktop/Code/NODE/node_modules/firebase/app-node.js:20:68) at Object.c [as database] (/Users/dd/Desktop/Code/NODE/node_modules/firebase/app-node.js:21:447) at Object. (/Users/dd/Desktop/Code/NODE/Bot.js:24:25) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) at run (bootstrap_node.js:394:7) at startup (bootstrap_node.js:149:9) at bootstrap_node.js:509:3 dd-mac:NODE dd$

可能有人請幫忙嗎?

回答

3

我在Firebase的在線指南中發現了類似的問題,發現here

標題爲「初始化多個應用程序」的標題具有誤導性,因爲此標題下的第一個示例實際上演示瞭如何初始化單個默認應用程序。這裏的說,例如:

// Initialize the default app 
var defaultApp = admin.initializeApp(defaultAppConfig); 

console.log(defaultApp.name); // "[DEFAULT]" 

// Retrieve services via the defaultApp variable... 
var defaultAuth = defaultApp.auth(); 
var defaultDatabase = defaultApp.database(); 

// ... or use the equivalent shorthand notation 
defaultAuth = admin.auth(); 
defaultDatabase = admin.database(); 

如果從以前的2.x SDK中遷移,你必須更新你訪問數據庫如上圖所示的樣子,或者你會得到的,No Firebase App '[DEFAULT]'錯誤。

谷歌已經在下面更好的文檔:

  1. 初始化:https://firebase.google.com/docs/database/admin/start

  2. SAVE:https://firebase.google.com/docs/database/admin/save-data

  3. 取回: https://firebase.google.com/docs/database/admin/retrieve-data

2

這可能不是最好的答案,但是,我必須使用下面的管理員和firebase初始化應用程序。我使用管理員也是爲了自己的目的和firebase。

const firebase = require("firebase"); 
const admin = require("firebase-admin"); 

admin.initializeApp(functions.config().firebase); 
firebase.initializeApp(functions.config().firebase); 
// Get the Auth service for the default app 
var authService = firebase.auth(); 

function createUserWithEmailAndPassword(request, response) { 
     const email = request.query.email; 
     const password = request.query.password; 
     if (!email) { 
      response.send("query.email is required."); 
      return; 
     } 
     if (!password) { 
      response.send("query.password is required."); 
      return; 
     } 
     return authService.createUserWithEmailAndPassword(email, password) 
      .then(success => { 
       let responseJson = JSON.stringify(success); 
       console.log("createUserWithEmailAndPassword.responseJson", responseJson); 
       response.send(responseJson); 
      }) 
      .catch(error => { 
       let errorJson = JSON.stringify(error); 
       console.log("createUserWithEmailAndPassword.errorJson", errorJson); 
       response.send(errorJson); 
      }); 
    } 
0

您可能在應用初始化之前調用firebase。到firebase.所有呼叫都必須來後.initializeApp();

firebase.initializeApp(config); 
var db = firebase.firestore(); 
相關問題