Firebase initializeApp(config); 乐趣

Den*_*ell 5 firebase firebase-authentication

我真的无法在任何地方找到这些信息。实际上,我找到了一个地方,每个 db 调用都在一个 js 脚本中。

有人可以澄清一下我是否应该运行这个:

var config = {
apiKey: "AAAPPPIIIIKKKEEEYYYYY",
authDomain: "test-db.firebaseapp.com",
databaseURL: "https://test-db.firebaseio.com",
storageBucket: "test-db.appspot.com"
};

firebase.initializeApp(config);
Run Code Online (Sandbox Code Playgroud)

在我网站的每一页上?或者甚至只是将它放入一个 js 文件并调用该文件?如何在页面之间传递初始化的应用程序?我没有使用 Angular 或 react 或 node.js。我只想将它与直接的 Java 脚本一起使用?这不可能吗?

如果我打电话:

<script>
    firebase.auth().onAuthStateChanged(function(user) {
        if (user) {
            console.log('User!!')
        } else {
            console.log('Not User!!')
        }
    });
</script>
Run Code Online (Sandbox Code Playgroud)

在不调用我的 firebase.js 的页面上,前 5 行初始化应用程序,然后我得到“非用户”。我不敢相信他们会希望我在每个页面上初始化应用程序..

Den*_*ell 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>
Run Code Online (Sandbox Code Playgroud)

在这里,他们最后说“这是您在“””“”“所有”“”“””页面上跟踪身份验证状态的方法。我花了一段时间但终于找到了答案。显然他们确实希望您在每个页面上初始化应用程序。嗯嗯