问题标签 [angularfire2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
165 浏览

systemjs - JSPM Map For Dependencies 未正确解析路径

我对 JSPM 感到非常沮丧,这只是众多问题中的最新问题。

我已经angularfire2通过 JSPM 安装了 - sudo jspm install npm:angularfire2(是的,SUDO。没有 SUDO 就无法工作!!)它应该已经安装了@angular依赖项。生成的包 json 看起来像这样——

生成的配置看起来像这样 -

因此,当我刷新应用程序的页面时,我看到它angularfire2.js正确导入,然后尝试导入@angular/platform-browser-dynamic.js. 但是它试图导入的地址是-http://localhost:8000/@angular/platform-browser-dynamic.js这是错误的路径!我想这是因为我的第一行app.ts(也是应用程序的起点)有这条线- import { bootstrap } from '@angular/platform-browser-dynamic';. 但是为什么 JSPM 不能正确映射呢?我需要单独安装这些软件包吗?如果是这样-为什么会有包依赖之类的东西?

预期:解析此导入时,/jspm_packages/npm/**应解析地址。

得到:SystemJS 尝试从 web root 加载包/

0 投票
3 回答
4673 浏览

unit-testing - 如何在单元测试中模拟 AngularFire 2 服务?

我正在尝试使用 AngularFire 2 auth 为示例 Angular 2 应用程序设置单元测试,该组件非常简单:

我所做的只是在 AngularFire 中封装loginandlogout方法,所以我正在考虑使用模拟来检查方法是否被调用,但我不确定从哪里开始,我尝试在我的规范文件中执行以下操作:

但是我不确定如何模拟loginandlogout方法,因为它们是auth属性的一部分,有没有办法模拟auth以及返回loginlogout方法?

0 投票
1 回答
256 浏览

firebase - firebase 函数 af.database.object 无法返回变量中的每个对象

我想从指定用户的 firebase 获取用户配置文件数据。例如,我想返回 UID HBJKD12345 的用户的 displayName 和电子邮件地址

我使用这个功能:

但是console.log(this.userProfile.email)我得到一个“未定义”

在我看来,我必须使用:{{(userProfile | async )?.email}} 通过这一行,我可以显示用户的电子邮件地址,但为什么我在尝试使用 console.log 时得到“未定义”?

0 投票
0 回答
148 浏览

firebase - AngularFire 查询非规范化数据

我在使用 firebase 查询我的数据时遇到了一些问题。

我有以下结构 在此处输入图像描述

用户有一些宠物,我想获取用户在宠物节点中拥有的所有宠物的列表。我做了以下方法:

最后,我得到了ownPets变量中的所有宠物。但这种方法对我来说很尴尬。

如果从数组内的宠物更新了宠物节点中的任何数据,则会ownPets再次推送该宠物,并且我会在ownPets.

我尝试了另一种方法:使用查询方法并在其中发送一个对象数组,equalTo但我收到一个错误,说我无法发送对象数组。

有人有更好的方法我可以使用吗?谢谢

0 投票
2 回答
1176 浏览

angularjs - $firebaseAuth 与 AngularFire 2.0.1 和 Firebase 3.0.5

我正在尝试升级到 Firebase 3 和 AngularFire 2。

我已经initializeApp在应用程序的配置阶段运行:

let firebaseConfig = { apiKey: config.fbSecret, authDomain: config.firebaseAuthDomain, databaseURL: config.firebaseBase }, fbApp = firebase.initializeApp(firebaseConfig); let baseRef = firebase.database().ref()

然后“提供”baseRef 以注入其他模块(就像我在旧版本中所做的那样):

$provide.value('FirebaseBase', baseRef);

这样我就可以注入FirebaseBase服务模块并使用例如FirebaseBase.child('profile').

这不会产生任何错误,但是当应用程序运行时我在控制台中收到此错误:

angular.js:4576 Uncaught Error: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp().

没有迹象表明错误来自哪里,但我在这个run阶段有一些身份验证代码:

$firebaseAuth.$onAuthStateChanged(..

我猜它可能来自那里。我试图遵循迁移指南,但似乎没有任何现实生活中的例子,而且我不清楚新的 AngularFire 如何与firebase.initializeApp.

任何地方都有示例应用程序吗?我错过了什么吗?

0 投票
0 回答
157 浏览

angular - Angular2 rc3 Angularfire3 找不到 Promise

我正在尝试将 Angularfire2 与 Angular2 启动器一起使用,但出现以下错误:

我试过这个: typings install dt~es6-promise --global --save 但我仍然得到:node_modules/angularfire2/firebase3.d.ts(33,50): error TS2304: Cannot find name 'Promise'.

这就是我所做的:

1)克隆angular2启动器

2)npm安装

3)npm install angularfire2 firebase --save

4)typings install dt~es6-promise --global --save

5)添加“文件”:[“node_modules/angularfire2/firebase3.d.ts”]到tsconfig.json

我还通过 npm install es-6promise 添加了 es-6 promise,没有运气。当我将target改为es6时,代码不再翻译成js,但是错误消失了。如果有人能指出我正确的方向,我会很高兴。

0 投票
1 回答
1859 浏览

typescript - 使用 angularfire2 加载数据后,Angular2 停止加载微调器

我想向这个组件添加一个加载微调器,并且我正在尝试将代码拆分为一个服务,因此我可以添加一个.subscribe方法并在加载完成时停止微调器,就像在这个工作示例中一样:

工作示例组件

工作示例服务

这是我要拆分的组件:


更新#1 给出答案

试一试答案,以更好地理解问题。

所以我创建了 UserService,它将使用 angularfire2 显示用户,现在我认为女巫开始成为主要问题,我的意思是items: FirebaseListObservable<any>;

用户服务

在 UsersComponent 我设法得到这样的用户列表:

但现在我需要一种在加载完成后停止微调器的方法,我知道的唯一方法是.subscribe()

,但这不起作用,因为items.
除了 有没有其他方法可以做到这一点.subscribe()?或者我可以将类型items转换为其他类型吗?

0 投票
0 回答
376 浏览

ionic-framework - 如何访问多个 AngularFire2 可观察对象项

在我的 Ionic2 应用程序中,我试图通过 AngularFire2 提供的 FirebaseObjectObservable 访问 Firebase 数据库中的多个项目

我的 Firebase 数据库是

我的 Observable 对象是在这里创建的

问题是我无法在我的应用程序中显示多个对象项目

应用程序中仅显示列表中的最后一项。

如何返回 Observable 对象的多个异步项?

0 投票
0 回答
43 浏览

firebase - Firebase 使用安全规则自动推送和设置多个节点

我已经阅读了Firebase 跨多个节点的数据一致性,多更新的东西按预期工作,但是我不知道如何执行以下操作:

假设我有 2 个集合:answersposts. 现在我想写一个帖子的答案并增加帖子对象上的答案计数器,以保持集合之间的数据一致。所以实际的对象看起来类似于这些:

邮政

回答

正如我上面所说,该链接回答了如何进行合并更新,但是,我如何确定该answers属性只会增加/减少(在删除的情况下)1?我到目前为止是这样的:

显然这会起作用(我假设,没有尝试过),但这仍然可以让我创建一个新的答案并减少计数器。我该如何克服这个问题?

0 投票
0 回答
319 浏览

typescript - angularfire 从firebase获取对象的长度

我被这个困住了。我在 ionic 2 中使用 angularfire 2,我需要获取我得到的对象的长度:

如何知道对象是否存在或是否为 null ?

谢谢。