angular2firebase - 使用 Angular 6 的多个实例

2023-12-02

我正在升级到Angular 6 using AngularFire2。我的应用程序引用了 2Firebase项目使用这样的代码来创建数据库引用:

public initFirebaseApp(config: FirebaseAppConfig, firebaseAppName: string) {
        this._db = new AngularFireDatabase(_firebaseAppFactory(config, firebaseAppName));
    }

这段代码现在已经被破坏了。我明白了:

ERROR in src/app/services/firebase.service.ts(24,25): error TS2554: Expected 5 arguments, but got 1.

Thanks!


AngularFire 现在通过注入支持更多的配置对象,这就是为什么它需要更多的参数。目前需要:

constructor(
  @Inject(FirebaseOptionsToken) options:FirebaseOptions,
  @Optional() @Inject(FirebaseNameOrConfigToken) nameOrConfig:string|FirebaseAppConfig|undefined,
  @Optional() @Inject(RealtimeDatabaseURL) databaseURL:string,
  @Inject(PLATFORM_ID) platformId: Object,
  zone: NgZone
)

虽然现在我们支持依赖注入,但我不建议像支持多个应用程序那样直接初始化。我们有一个未解决的问题来记录这一点但你现在可以注入不同的FirebaseOptions通过FirebaseOptionsToken到不同的组件中,如果您需要在同一组件中使用多个数据库,请使用如下所示:

@Injectable()
export class AngularFireDatabaseAlpha extends AngularFireDatabase { }

@Injectable()
export class AngularFireDatabaseBeta extends AngularFireDatabase { }


export function AngularFireDatabaseAlphaFactory(platformId: Object, zone: NgZone): Project1AngularFireAuth {
  return new AngularFireDatabaseAlpha(environment.firebase[0], 'alpha', undefined, platformId, zone)
}
export function AngularFireDatabaseBetaFactory(platformId: Object, zone: NgZone): Project2AngularFireAuth {
  return new AngularFireDatabaseBeta(environment.firebase[1], 'beta', undefined, platformId, zone)
}


@NgModule({
  ...,
  providers: [
    ...,
    { provide: AngularFireDatabaseAlpha, deps: [PLATFORM_ID, NgZone], useFactory: AngularFireDatabaseAlphaFactory },
    { provide: AngularFireDatabaseBeta, deps: [PLATFORM_ID, NgZone], useFactory: AngularFireDatabaseBetaFactory },
    ...
  ],
  ...
})

然后你就可以依靠依赖注入来获得AngularFireDatabaseAlpha and AngularFireDatabaseBeta到你的组件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

angular2firebase - 使用 Angular 6 的多个实例 的相关文章

随机推荐

  • 如何拦截提交按钮的点击?

    我有一个表单和一个提交按钮 我想快速检查一些字段 如果未填写某个字段 则空白其他一些字段 我不想更改按钮的 HTML 我只想在 jQuery 中执行此操作 而不向按钮添加任何 onclick 属性 HTML
  • 无效的密钥哈希 facebook android sdk

    我正在尝试使用 Facebook Android SDK 开发一个带有 Facebook 登录按钮的简单应用程序 但我在密钥哈希方面遇到了麻烦 我已经创建了调试密钥和发布密钥 在 mac 中 调试键 keytool exportcert a
  • 给字符串添加空格

    我正在尝试为每个空格添加一个空格 直到column 0 我不知道该怎么做 问题如下 如果你看报纸 你会发现文章的内容很适合专栏 写一个程序 它读取报纸中栏的宽度 然后读取一行文本 对齐文本行以适应 该宽度的列 当你的程序运行时 屏幕应该看起
  • PHP 卷曲,保留会话

    我正在制作一个应用程序 可以从网站上抓取数据 根据需要对其进行格式化 然后将其显示给用户 现在 该站点不允许跨站点脚本请求 因此我使用 PHP 的curl 来检索页面 使用浏览器时 网站会在您首次访问时向您提供 cookie 要求您登录 并
  • 使用 Flexbox 居中时 Safari 不显示 SVG

    我在 Safari SVG 和 Flexbox 方面遇到问题 目标是拥有一个响应式 SVG 保持宽高比 16 9 此外 SVG 应始终位于屏幕的垂直和水平中心 以下代码适用于除 Safari 之外的所有浏览器 我尝试了不同的供应商前缀 但我
  • 核心数据 keyPathsForValuesAffectingValueForKey 仅调用关系,而不调用属性

    我正在使用核心数据来建模一个具有属性和关系的实体 我想让其中一个属性依赖于另外两个关系 核心数据常见问题解答和其他几个示例使用 NSSet keyPathsForValuesAffectingValueForKey NSString key
  • 取消用户定义函数中先前的操作

    是否可以取消用户定义函数中之前的操作 例如 CREATE OR REPLACE FUNCTION transact test RETURNS BOOLEAN AS BEGIN UPDATE table1 SET UPDATE table2
  • 如何从android中的sqlite数据库中检索数据并将其显示在TextView中

    我正在学习安卓 我有一个问题 但我无法解决它 我想从现有数据库中检索数据并将其显示在TextView单击按钮后 My code 数据库助手看起来像这样 public class DataBaseHelper extends SQLiteOp
  • 卷积中的2D步幅是什么意思?

    我知道当步幅只是一个整数时它的含义是什么 通过这一步你应该对图像应用过滤器 但是关于 1 1 或者甚至更多维度的进步 The stride定义滤波器如何沿着输入图像 张量 移动 没有什么可以阻止你沿着不同的轴以不同的方式大步前进 例如 st
  • 如何在 Mac OS X 中监听应用程序启动事件?

    我写了一个AppleScript安装一个SparseBundle图像 我希望它准确地执行Time Machine发射 现在 我定期检查 Time Machine 是否正在运行AppleScript using on idle陈述 on id
  • 带有操作栏和选项卡的 Android 布局

    我是 Android 新手 需要您的建议 我想要一个带有操作栏的活动 我还需要选项卡 但不是操作栏中的选项卡 和操作栏中的下拉列表进行导航 当我点击例如第一个选项卡时 操作栏中的导航列表应填充数据 当秒选项卡时 导航列表应填充其他数据等 当
  • Javascript 错误:JupyterLab 中未定义 IPython

    我有最新 更新的 Anaconda 包 每次我尝试使用 python 3 6 6 绘制某些内容时 我都会在 JupyterLab 中收到以下错误 JavaScript 错误 IPython 未定义 当我使用 ipython 内核在 Spyd
  • 无法解决“c 不是构造函数”错误

    我正在尝试使用 ExtJS 构建一个非常非常基本的 概念验证 应用程序 但我遇到了困难 我想要的只是两个网格从远程 JSON 文件获取数据 但无论我做什么 我都会不断收到主题中的错误 这是我的简单代码 app js Ext Loader s
  • Azure 函数在大型 TIF 文件上调用 Image.FromStream 抛出“参数无效”

    我正在尝试在 Azure 函数中处理多页 TIF 该函数由 blob 存储的更改触发 当触发器运行时 它会调用 function loadFile Stream mpTif Bitmap pageOnes Bitmap Image From
  • 将模块版本作为命令行参数发送给 SBT

    我正在使用 TeamCity 运行 bash 脚本 该脚本利用 SBT Native Packager 将映像发布到 Docker bash 脚本的 sbt 部分如下所示 sbt DdockerRepository repo Dpackag
  • 更新 VS2008 Crystal Reports 上的数据集架构

    我正在使用 Visual Studio 2008 中 Crystal Reports 的内置模块创建一个报告 为此我添加了一个包含多个数据表的数据集 就目前而言 数据表具有一定数量的字段 这些字段将来可能会增长 因此下一个更新我的报告的人将
  • event.currentTarget 的实际用途?

    非常清楚的是event target处理发起事件的 DOM 元素 And event delegateTarget提供我们实际附加监听器的 DOM 元素 但我很难理解我什么时候会使用 事件 currentTarget 查看显示此示例的 jQ
  • 并行 ForEach 与 SQL 插入 C#

    我有一个如下所示的对象 但数据量很大 我们观察到插入到我们的 SQL 数据库中需要很长时间 因为我们使用普通的foreach 主要思想是插入每个部门并获取生成的身份号码 然后插入分配有该部门 ID 的嵌套员工
  • 按行删除每行列子集中的重复项,按行仅保留第一个副本

    我有以下 pandas 数据框 超过 700 万行 import pandas as pd data date 2023 02 22 2023 02 21 2023 02 23 x1 descx1a descx1b descx1c x2 A
  • angular2firebase - 使用 Angular 6 的多个实例

    我正在升级到Angular 6 using AngularFire2 我的应用程序引用了 2Firebase项目使用这样的代码来创建数据库引用 public initFirebaseApp config FirebaseAppConfig