将 Firebase 身份验证添加到 angular-cli 2 应用程序

Adding Firebase authentication to angular-cli 2 app

这是一个新手问题。我已经完成了添加 Google 身份验证的 Firebase 教程,效果很好。我还完成了 angular-cli 快速入门教程,这也很好。但是,在 Firebase 教程中,您将身份验证脚本(如下)添加到 index.html 页面,而在 angular-cli 应用程序中,您不应修改 index.html 文件。那么,将 Firebase 身份验证脚本放在哪里的最佳做法是什么?

<script src="https://www.gstatic.com/firebasejs/3.0.5/firebase.js"></script>
  <script>
    // Initialize Firebase
    // TODO: Replace with your project's customized code snippet
    var config = {
      apiKey: "apiKey",
      authDomain: "projectId.firebaseapp.com",
      databaseURL: "https://databaseName.firebaseio.com",
      storageBucket: "bucket.appspot.com",
    };
    firebase.initializeApp(config);
  </script>

如果您不想更改 CLI 文件结构,可以下载脚本并将其添加到 angular-cli-builds.js -> vendorNpmFiles;添加 map/package 信息到 src/system-config.ts:

/*******************************************************************************
 * User Configuration.
 *******************************************************************************/
/** Map relative paths to URLs. */
const map: any = {
  'firebase': 'vendor/firebase.js'
};

/** User packages configuration. */
const packages: any = {
  // not sure if this is needed
  // or what type of module the file is...
  'firebase': { defaultExtension: 'js' } 
};

然后将初始化代码添加到main.ts:

// imports and stuff
...

import * as firebase from 'firebase';
// import 'firebase'; // or this?
bootstrap(AppComponent).then(() => {
    // Initialize Firebase
    // TODO: Replace with your project's customized code snippet
    var config = {
      apiKey: "apiKey",
      authDomain: "projectId.firebaseapp.com",
      databaseURL: "https://databaseName.firebaseio.com",
      storageBucket: "bucket.appspot.com",
    };
    firebase.initializeApp(config);
});

此处有更多信息:3rd party lib installation

我在这里找到了 AugularFire2 用户身份验证的文档页面: https://github.com/angular/angularfire2/blob/master/docs/5-user-authentication.md