问题标签 [angularfire]

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 回答
413 浏览

javascript - ng-repeat 中的 Firebase 和 AngularFire 错误仅在 IE8 中

我有一个使用 angular 和 firebase 的应用程序。它调用我的 firebase url,并对返回的对象中的 2 个项目进行简单的 ng-repeat。

该应用程序在除 Internet Explorer 8 之外的所有浏览器中都运行良好。我经常在 IE 8 中对其进行测试并且它工作正常。并不是说我已经启动了它,而是在最近几天的某个时候它开始收到此错误。这段时间我对应用程序进行了更改,但我认为没有任何事情会改变 IE8 的呈现方式。

IE8中的错误很简单:

SCRIPT5007:无法设置未定义或空引用 firebase.js 的属性“艺术家”,第 1 行字符 28

我已将代码简化为基础,但仍然出现错误。

您可以在下面看到,艺术家是 $scope.xmatch 中我试图用 ng-repeat 重复的对象的名称。我必须得到这个工作,所以任何帮助将不胜感激。

应用程序.js

global.js

索引.html

0 投票
2 回答
6696 浏览

angularjs - 使用 angularFire 隐式同步在 ng-repeat 中访问 Firebase 唯一 ID

我有一个使用隐式数据同步的 Firebase 对象列表angularFire,我想使用ng-repeat. 我能否以angularFire我可以访问其中的对象 id 的方式返回,ng-repeat就像 an 的成员angularFireCollection拥有一个$id属性一样?如果不是,那么实现此目的的正确方法是什么?假设代码(不起作用):

控制器:

看法:

0 投票
1 回答
649 浏览

angularjs - 在 AngularJS 中从 Firebase 渲染对象的子对象

我正在遵循 @Anant 在Firebase 博客上很好地描述的“非规范化”数据模式。child_added为了查询和渲染子对象,他建议在父对象上监听事件以获取子对象 ID,然后单独查询这些子对象.once('value', fnc)以渲染它们。从博客文章中(他使用发布的链接作为父级,使用评论作为子级——想想 Reddit 或 Hacker News):

[原文如此]

我正在尝试将其与我的 AngularJS 视图相协调,因为将结果添加.once$scope数组中并使用ngRepeat会给你留下一个静态列表(如果它们被另一个客户端更改或删除,孩子将不会实时更新)。

换句话说,我想要一个类似于angularFireCollection子对象的东西,它会动态地添加、删除和更新。

0 投票
1 回答
114 浏览

angularjs - 使用 angularFireCollection 显式同步单个模型

我正在使用 0.3.0 版的 angularFire 将 AngularJS 应用程序连接到 Firebase。我想在编辑表单上使用单个模型的显式同步。

我尝试根据文档使用 angularFireCollection 而不是 angularFire ,在我的控制器中使用$scope.questions = angularFireCollection(new Firebase(fbUrl + 'questions/' + $routeParams.id));,但顾名思义,它似乎只适用于集合而不是单个模型。

我不想检索一个可能很大的集合,然后搜索一个特定的模型,所以我通过使用 angularFire 并创建一个副本来解决这个问题,如果用户取消编辑,我会恢复它,但是由于隐式同步,这具有在编辑模型时广播更改的副作用。

我想知道处理这个用例的推荐方法是什么。我应该直接使用 Firebase API 吗?

0 投票
2 回答
767 浏览

angularjs - 使用具有多个承诺的 AngularFire 获取数据 - 无限循环

我正在尝试将 Firebase 和 AngularFire 用于我正在构建的应用程序。诚然,我是 Angular 和 Firebase 的新手,因此我们将不胜感激。

我在 Firebase 中有以下数据库结构:

  • 史诗
    • 史诗 1
      • ID
      • 标题等
    • 史诗 2
      • ID
      • 标题等
  • 用户

    • 用户 1

      -activeepics

      • 活跃史诗 1

      • 活跃史诗2

在下一页上,我对数据库中的每个史诗都有一个 ng-repeat。每个史诗都有一排按钮,其中一个给我带来了麻烦。如果当前用户已经开始了史诗(例如史诗出现在该用户的“活动史诗”中),那么按钮应该说“Tap Out”。如果史诗不在用户的活动史诗中,则应显示“开始”。

按钮在单击时应该执行不同的操作,具体取决于按钮标签。因此,如果按钮标签显示“开始”,应用程序应将史诗添加到当前用户的“活动史诗”中,并将按钮标签更改为“Tap Out”。相反,如果按钮标签是“Tap Out”,应用程序应该从“activeepics”中删除史诗,并将按钮标签改回“开始”。

但是,我得到了各种奇怪的行为。当我使用 1 或 0 等虚拟 ID 时,该应用程序会显示正确的按钮标签。但是,当我添加具有 Firebase 生成 ID 的史诗时,所有标签都会重置为“开始”。我还注意到,该应用程序多次循环遍历每个史诗(我为每个显示的史诗输入了调试 console.log)。

我认为问题可能是在将 Firebase 数据绑定到 $scope 后我有多个承诺对象。如果可以的话请帮忙!

这是代码:

看法

控制器

0 投票
2 回答
271 浏览

javascript - 如何在 Angularfire 中使用 javascript 对象方法

我有一个代表餐厅订单的对象:

扩展了一些用于业务逻辑的对象方法,例如:

在角度控制器中,订单在提交时被推送到数组中(通过视图中按钮的 ng-click):

一旦订单被推送到数组中,属性就会orders[0].customer_name起作用,但方法orders[0].value()不会。

Firebase/Angularfire 只会同步 JSON 似乎是合理的,但是有没有一种方法可以让我保持与对象相关的逻辑包含在order对象中,即无需编写$scope.getOrderValue(orders[0])

0 投票
0 回答
131 浏览

javascript - AngularFireSeed 上的 AngularFireAuth UI 闪烁

我一直在努力解决这样一个事实,即当您在 AngularFireSeed 上刷新帐户页面时,登录屏幕会闪烁,然后它会重定向到帐户页面。我还注意到 ng-hide 无法隐藏登录链接,该链接在 Angular 实现其身份验证并显示注销链接之前闪烁。

我在下面的链接中找到了一个建议的解决方案,但我尝试了几个小时并无法让它工作。我认为是因为缺少一些细节:https ://groups.google.com/forum/#!topic/firebase-angular/bO0AW2V9d9w

知道我能做些什么来解决这个问题。试图不必破解 angularFire 或在 vanilla Firebase API 中编写代码,但它看起来可能会这样。

谢谢。

0 投票
1 回答
666 浏览

firebase - Securing Firebase CRUD operations with users

Due to the thin AngularFire documentation and the differences between it and the default web documentation for Firebase, I'm a little lost on how best to secure Create, Read, Update, and Delete operations with users.

In short, say I have an application that manages stores. Users can be owners of the stores or patrons. Owners should read and edit their own stores in their view and patrons should read all but edit no stores in their view.

I'm concerned about the security of suggested methods by Firebase docs such as

So for example, we could have a rule like the following to allow users to create comments as long as they store their user id with the comment:

To me, this means that I could hack my application's data by simply passing in my victim's user id when I want to post a comment as them. Am I wrong?

I've read the security documentation thoroughly, several times. I think I need further explanation here. Identifying by a client-exposed parameter is the only method I can find so far.

0 投票
3 回答
13313 浏览

javascript - 获取 Firebase AngularFire 中项目的索引 ID

这里提出了一个类似的问题,但一个被接受的答案并没有真正回答这个问题。

使用 AngularFire,是否可以创建关系型数据库?或者访问 UniqueIDs?

通过 AngularFire 将嵌套项添加到 Firebase 时,每个项实际上都设置在另一个以数字编号的索引下。

在此处输入图像描述

因此,我需要使用以下相对 url 引用用户的产品:

我的问题是,一旦我创建了一个用户(或任何相关的东西),我如何获得索引值?

更新

澄清一下,这不是关于用户身份验证的问题。我已经处理好了。对困惑感到抱歉。

当我开始在 Firebase 中的其他东西“下”制作东西时,我刚刚遇到了一堵砖墙。不管是users还是giraffes。

如果我制作“商店”,则每个商店都有“产品”(比方说。)

我希望能够用

storeId理想情况下是从 AngularFire 创建的索引 ID(参见我附上的图片)。问题是,AngularFire 只是创建了这个 ID,而没有让我知道。

如果我有一些成功的功能,比如

这是最有意义的,但 AngularFire 似乎并没有准备好这个非常需要的功能。请证明我错了。:)

0 投票
2 回答
496 浏览

angularjs - Firebase 让我在我的 AngularFire/AngularJS 项目中击键后停止输入

我开始使用 Firebase (AngularFire) 为我的应用程序同步数据。它是 Scrum 的卡片工具,可将卡片添加到数组中。您可以操作输入字段。

首先,我使用了 localStorage,效果非常好。现在我基本实现了 Firebase,我遇到了以下问题:在一个字段中键入一个键后,应用程序停止,恢复键入的唯一方法是再次单击输入字段。

你知道这是为什么吗?非常感谢您!

这是我在Controller中的基本实现:

那是我的标记: