我想升級到火力3和AngularFire 2.
我已經在應用程序的配置階段運行initializeApp
:
let firebaseConfig = { apiKey: config.fbSecret, authDomain: config.firebaseAuthDomain, databaseURL: config.firebaseBase }, fbApp = firebase.initializeApp(firebaseConfig); let baseRef = firebase.database().ref()
然後「provided`的baseRef用於注射到其他模塊(如我在舊版本做):
$provide.value('FirebaseBase', baseRef);
,以便我可以將FirebaseBase
注入服務模塊並使用例如FirebaseBase.child('profile')
。
不產生任何錯誤,但我在控制檯收到此錯誤時,應用程序運行:
angular.js:4576 Uncaught Error: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp().
沒有哪裏的錯誤來自指示,但我有一些在run
階段驗證碼:
$firebaseAuth.$onAuthStateChanged(..
,我猜測它可能來自那裏。我試圖遵循移民指南,但似乎沒有任何現實生活中的例子,我不清楚新的AngularFire與firebase.initializeApp
的關係。
是否有示例應用程序在任何地方?我錯過了什麼嗎?
當您在同一個應用程序中多次調用firebase.initializeApp()時,會出現此錯誤。你只應該一次給它打電話。你確定你只運行一次配置代碼嗎?你真的在你的代碼的其他地方調用initializeApp()嗎?你能否更新你的答案以包含你的設置代碼? – jwngr
這是一個角度的應用程序。據我所知,配置只能在啓動時運行一次。 (工作)應用程序的結構並沒有真正改變。 InitializeApp不在客戶端應用程序的其他任何位置運行。 該消息似乎表明,initializeApp根本沒有運行,而不是它已經運行多次。那是錯的嗎? 發佈所有設置代碼是不太可能的,因爲它有相當多的設置代碼。 – kpg
啊,是的,我誤讀了,對不起。看起來您的配置代碼在開始使用Firebase之前並未實際運行。沒有看到你的設置代碼,我不知道我怎麼能幫你。嘗試削減它,你可能會發現自己的問題。另外,你是否已經使用AngularFire(https://github.com/firebase/angularfire)來簡化一起使用Angular和Firebase? – jwngr