[英]No firebase.app.App instance is currently initialized in Angular Application
[英]No firebase.app.App instance is currently initialized
首先,我想确保所有firebase脚本都已加载,并且它们以正确的顺序加载。
我以一种基本的方式解决了这个问题,但它可行:)
var my_firebase_init = function(){
firebase.initializeApp(my_firebase_config);
firebase.auth().languageCode = my_lang;
console.log('FIREBASE INIT OK');
}
var firebase_version = 'https://www.gstatic.com/firebasejs/4.6.2/';
var scripts = [
firebase_version+'firebase.js',
firebase_version+'firebase-app.js',
firebase_version+'firebase-auth.js',
'my_firebase_init'
];
var script_loaded = [];
var deferred = new $.Deferred(),
pipe = deferred;
$.each(scripts , function(index, script) {
pipe = pipe.pipe(function() {
if(script == 'my_firebase_init'){
if(script_loaded[0] && script_loaded[1] && script_loaded[2]){
my_firebase_init();
}
return;
}
return $.getScript(script)
.done(function( script, textStatus ) {
script_loaded[index] = true
})
.fail(function( jqxhr, settings, exception ) {
script_loaded[index] = false
});
});
});
deferred.resolve();
现在我可以看到console.log('FIREBASE INIT OK')
接下来,我尝试使用recaptcha:
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('id_container_recaptcha', {
'size': 'invisible',
'callback': function(response) {
// reCAPTCHA solved, allow user to do action.
// ...
},
'expired-callback': function() {
// Response expired. Ask user to solve reCAPTCHA again.
// ...
}
});
这工作正常,但有时会出现此错误:
当前没有初始化firebase.app.App实例
我注意到,如果我稍等片刻然后重试...效果很好!
所以我的问题是: 如何检查firebase.app.App是否已初始化?
您需要先初始化firebase
,然后才能使用它:
/* Firebase App is always required and must be first */
var firebase = require("firebase/app");
var app;
var firebaseConfig = {
apiKey: "some-api-key",
authDomain: "some-app.firebaseapp.com",
databaseURL: "https://some-app.firebaseio.com",
storageBucket: "some-app.appspot.com",
};
/* on DOM ready */
$(function() {
app = firebase.initializeApp(firebaseConfig);
/* check in here, if it had been loaded properly */
});
从firebase导入所有内容;
import * firebase from 'firebase';
并在ngModule()之后初始化
firebase.initializeApp(config);
然后一切都与您的代码相同
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.