我真的无法在任何地方找到这些信息。实际上我发现一个地方在一个js脚本中有每个db调用。
有人可以澄清一下我是否应该这样做:
var config = {
apiKey: "AAAPPPIIIIKKKEEEYYYYY",
authDomain: "test-db.firebaseapp.com",
databaseURL: "https://test-db.firebaseio.com",
storageBucket: "test-db.appspot.com"
};
firebase.initializeApp(config);
在我网站的每一页上?或者甚至只是将它放入一个js文件并调用该文件?如何在页面之间传递初始化的应用程序?我不使用Angular或react或node.js.我只是想用直接的java脚本吗?这不可能吗?
如果我打电话:
<script>
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
console.log('User!!')
} else {
console.log('Not User!!')
}
});
</script>
在一个不调用我的firebase.js的页面上,前5行初始化应用程序,然后我得到&#34; Not User&#34;。我无法相信他们会希望我在每一页上初始化应用程序..
答案 0 :(得分:2)
所以我找到了答案..
Here is how you would track the Auth state across all your pages:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Sample FirebaseUI App</title>
<!-- *******************************************************************************************
* TODO(DEVELOPER): Paste the initialization snippet from:
* Firebase Console > Overview > Add Firebase to your web app. *
***************************************************************************************** -->
<script type="text/javascript">
initApp = function() {
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
var displayName = user.displayName;
var email = user.email;
var emailVerified = user.emailVerified;
var photoURL = user.photoURL;
var uid = user.uid;
var phoneNumber = user.phoneNumber;
var providerData = user.providerData;
user.getIdToken().then(function(accessToken) {
document.getElementById('sign-in-status').textContent = 'Signed in';
document.getElementById('sign-in').textContent = 'Sign out';
document.getElementById('account-details').textContent = JSON.stringify({
displayName: displayName,
email: email,
emailVerified: emailVerified,
phoneNumber: phoneNumber,
photoURL: photoURL,
uid: uid,
accessToken: accessToken,
providerData: providerData
}, null, ' ');
});
} else {
// User is signed out.
document.getElementById('sign-in-status').textContent = 'Signed out';
document.getElementById('sign-in').textContent = 'Sign in';
document.getElementById('account-details').textContent = 'null';
}
}, function(error) {
console.log(error);
});
};
window.addEventListener('load', function() {
initApp()
});
</script>
</head>
<body>
<h1>Welcome to My Awesome App</h1>
<div id="sign-in-status"></div>
<div id="sign-in"></div>
<div id="account-details"></div>
</body>
</html>
在这里,他们最终说“这里是你如何跟踪”“”“”“”所有“”“”“”“你的网页。花了我一会儿,但我终于找到了答案。显然,他们希望您在每个页面上初始化应用程序。嗯
答案 1 :(得分:1)
对于试图从Google搜索中登陆并试图将哪些选项/ apikeys / authdomain等数据放入firebase.initializeApp()
中的任何人,您可能已经创建了Firebase 项目,但没有将Firebase app 添加到了项目中。
在编写“ Firebase SDK代码段”部分时,您需要的所有信息都应该存在。
但这并不能完全回答OP的问题。
原始问题是一个通用的Web应用程序使用JavaScript问题,而不是Firebase问题。自然,要使每个“页面”上的JavaScript代码都运行,它将需要该页面上的所有对象都是完整且正确的。更多的是webpack /通用JavaScript。