【问题标题】:Integrating Firebase admin with Angular 4 project将 Firebase 管理员与 Angular 4 项目集成
【发布时间】:2018-03-29 09:10:54
【问题描述】:

尝试将 firebase-admin 添加到我的 Angular 项目中,但出现我无法解决的错误(见屏幕截图)

npm install google-cloud 但这只会导致更多错误 (来自android并试图自己弄清楚,但在这里我遗漏了一些东西并且不知道到底是什么)

我的app.component.ts

import {Component} from '@angular/core';

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
  })
  export class AppComponent {
 constructor() {
const admin = require('firebase-admin');
const serviceAccount = 
require("C:/Users/Pawel/Desktop/CODE/pamiAdmin3/src/app/serviceKey.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: 'https://pami-16c0f.firebaseio.com'
  });
 }
 }

【问题讨论】:

  • admin SDK 只能在服务器上使用,不能供最终用户访问(参见Add the Firebase Admin SDK to your Server 页面顶部的警告)。
  • @Jeff 那将是一个服务器页面...:S
  • Admin SDK 仅用于受信任的服务器环境 - 例如您控制的 Node.JS 服务器。应通过数据库安全规则为选定的用户提供更多访问权限以查看/更改数据库中的内容
  • 因为 Angular 是一个前端服务,任何有权访问该站点的人都可以获得您的服务密钥。这不是 firebase-admin 的使用方式。
  • @sketchthat -所以该错误的原因是因为我使用的是角度?我应该使用 node.js 制作一个 api,然后将其连接到我管理用户的 Angular 站点 - 这是正确的方法吗?

标签: angular typescript firebase firebase-admin


【解决方案1】:

您应该使用 Node.js 和 firebase-admin 实现您的管理 API,然后将其部署在服务器中。然后,您的 Angular 应用程序可以在需要执行某些管理功能时连接到它。将 ID 令牌从 Angular 应用程序传递到服务器,在那里可以使用 Admin SDK 对其进行验证,以确保调用者具有所需的管理员权限。

【讨论】:

  • 我试图理解这一点,而不是在 AWS S3 网站的 Angular 示例上部署它我需要在 AWS Lambda 上添加它,因为 s3 是可访问的?
猜你喜欢
  • 1970-01-01
  • 2019-10-16
  • 2018-05-12
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
相关资源
最近更新 更多