将 Firebase 管理员与 Angular 4 项目集成
Posted
技术标签:
【中文标题】将 Firebase 管理员与 Angular 4 项目集成【英文标题】:Integrating Firebase admin with Angular 4 project 【发布时间】: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 站点 - 这是正确的方法吗? 【参考方案1】:您应该使用 Node.js 和 firebase-admin
实现您的管理 API,然后将其部署在服务器中。然后,您的 Angular 应用程序可以在需要执行某些管理功能时连接到它。将 ID 令牌从 Angular 应用程序传递到服务器,在那里可以使用 Admin SDK 对其进行验证,以确保调用者具有所需的管理员权限。
【讨论】:
我试图理解这一点,而不是在 AWS S3 网站的 Angular 示例上部署它我需要在 AWS Lambda 上添加它,因为 s3 是可访问的?以上是关于将 Firebase 管理员与 Angular 4 项目集成的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Firebase 隐形 reCAPTCHA 用于 Angular Web 应用程序?
无法使用具有来自 firebase 角色的 Angular AuthGuard
Angular 4 Firebase angularfire 按值对列表进行排序