Firebase initializeApp(config);开玩笑

时间:2017-10-10 05:58:26

标签: firebase firebase-authentication

我真的无法在任何地方找到这些信息。实际上我发现一个地方在一个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;。我无法相信他们会希望我在每一页上初始化应用程序..

2 个答案:

答案 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。