问题标签 [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.
firebase - Firebase 多浏览器选项卡进行身份验证
我正在使用angularFireAuth
并且 angularFireAuth 提供了一个登录的用户变量。假设$scope.user.id
我用它来验证当前用户是否登录。我也angularFireAuth.logout()
用来注销用户。
在单个打开的浏览器选项卡上一切正常。
但它不适用于多个选项卡。
- 该选项卡的登录 1
WILL NOT
登录其他选项卡并设置登录variables
- 选项卡的注销 1
DOES NOT
清除其他选项卡variables
并注销。
所以这意味着
我打开了 2 个标签,我称之为tab A和tab B。当我注销或登录选项卡 A时。
Tab B也不会。同时,如果我提交了一些需要在选项卡 b中进行身份验证的内容(该选项卡 A 已经注销)。我仍然可以提交。(除非我手动刷新)。
angularjs - 在 AngularFire 回调中获取 Firebase 数据
我见过的每个使用 Firebase 的 Angular 应用程序的示例都有一个非常静态的路径。
单击添加 -> 将您带到新视图
单击保存 -> 保存数据并将您路由到列表视图
点击 Item (from list view) -> Routes you to edit view of that object using $routeparams
我正在尝试编写一个函数,将一个新对象添加到 fb 集合中,并将用户路由到该特定对象的编辑视图并在一个操作中。AngularFire 的 add() 方法接受一个回调,如果我可以获得刚刚添加到该回调中的对象的 $id,我可以使用 $routeparams 来执行所需的操作。
这甚至可能吗?
*更新:我正在使用 AngularFire 方法 .add() ,结果被修改为返回新的数据引用。但是,这些数据实际上是如何访问的?
例如$scope.object.add(localObject);
angularjs - AngularJS 服务中的 Firebase AngularFire
在 AngularJS 中处理 Firebase 的最佳方式肯定是在服务中,因此它对应用程序中的所有控制器都可用。
我就是无法让它工作!...我第一次尝试使用angularFire(new Firebase(url))
,希望我可以绑定到服务的范围,但 Angular 抱怨它不能$watch
。
所以我尝试了 angularFireCollection,而不是这样:
但是, angularFireCollection 是一个包含大量方法等的对象。如果我将它绑定到控制器 $scope 我只会得到垃圾。它还抱怨在我尝试使用 Firebase 函数之前它无法调用它们(例如Error: Firebase.push failed: second argument must be a valid function.
)......有人知道我哪里出错了吗?
看到这个PLUNKER
angularjs - 当我的 AngularFire 应用程序最初加载时如何清除模型?
我是 AngularFire 的新手,正在尝试理解一个简单的概念。如果您通过位于以下网址的 AngularFire 教程:http: //angularfire.com/tutorial/index.html#gettingstarted有一个使用 AngularFire 构建原始“聊天”应用程序的基本示例。
该教程非常简洁明了,但我不明白其中的一个要点:
问题是首先创建了一个模型,然后设置了 AngularFire 的绑定魔法,这样现在就有了一个与模型的 3 路绑定。如果 Firebase 中已经存储了一组数据,则会获取并同步该数据,您的模型现在将在本地拥有这些数据。
我根本不明白的是,当控制器代码运行时,假设我在 angularFire 绑定连接后将模型设置为空数组,为什么 Firebase 数据没有被清除?没关系,刷新页面基本上会一直清除数据(我想要的行为)。
现在,如果我将 ng-click 事件连接到一个按钮,我可以让这个行为起作用,该按钮调用在我的 $scope 对象上定义的名为 clear 的方法。如果在该方法内,我只需调用:$scope.messages = [];,然后我的模型在本地和远程清除。
但是为什么这对初始化不起作用?
帮助总是受到赞赏。
angularjs - angularfireCollection:知道数据何时完全加载
我正在编写一个小型 Angular Web 应用程序,在加载数据时遇到了问题。我使用 Firebase 作为数据源,发现 AngularFire 项目听起来不错。但是,我无法控制数据的显示方式。
起初,我尝试通过执行以下操作来使用常规隐式同步:
当我在视图中使用模型 $items 时,它运行良好并且所有数据都显示出来了。但是,当数据来自 Firebase 数据源时,它的格式不是视图支持的方式,因此我需要在数据显示之前对数据进行一些额外的结构更改。问题是,我不知道数据何时已完全加载。我尝试将 $watch 分配给 $items,但它被调用得太早了。
所以,我继续前进并尝试使用 angularfireCollection 代替:
文档不太清楚“optionalCallbackOnInitialLoad”的作用和调用时间,但尝试访问 $items 集合中的第一项将引发错误(“Uncaught TypeError: Cannot read property '0' of undefined”) .
我尝试添加一个按钮,并在按钮的单击处理程序中记录了 $items 中第一项的内容,并且它起作用了:
就在那里!我的 Firebase 中的第一个对象显示时没有任何错误……唯一的问题是我必须单击一个按钮才能到达那里。
那么,有谁知道我如何知道所有数据何时已加载,然后将其分配给 $scope 变量以显示在我的视图中?还是有其他方法?
我的控制器:
我的观点:
提前致谢!
angularjs - Firebase 重复值无法循环
我有
当我<div ng-repeat="(key, val) in foos">{{val}}</div>
使用 foos时angularFire()
我回来Duplicates in a repeater are not allowed. Repeater: (key, val) in foos key: boolean:true
为什么它true
作为键调用并且不允许循环?
更新
这是 angularFire();
angularFire(firebaseRef, $scope, 'foos');
它仅在它们具有不同的值时循环。
更新 2
我发现了问题。这是 angularJS 1.1.5 的问题
看看这个plnkr
angularjs - 将客户端名称绑定到优先级
简单的 CRUD 应用程序、客户端列表视图和详细视图。我希望列表视图在服务器上排序,所以我应该在客户端 FireBase 引用上设置优先级。
每次 client.name 更改时,我都会在 FireBase ref 上设置优先级。但是,当我返回列表页面时,优先级为空。我认为发生这种情况是因为更改名称会调用 set() 引用,这会清除优先级。
将优先级设置为 client.name 的最简单方法是什么?我可以尝试使用 $timeout,但是当 client.name 之外的值被修改时,它会被覆盖。
angularjs - 使用angularFire绑定嵌套输入时如何避免丢失输入焦点?
当使用 angularFire 绑定模型(不使用 angularFire 时行为正常)时,嵌套输入字段会失去对更新的关注(由于视图的重新渲染)。在此处查看详细的 plunker 来演示该问题。
任何人都可以建议解决此问题的解决方法或解决方法吗?
firebase - 按用户查询 firebase 对象
我有一个看起来像这样的数据结构:
当我查询“/farms”时,我想获取经过身份验证的用户是所有者的农场列表。我还想阻止用户查看他们不是所有者的农场。
我的规则目前如下所示:
我通过将 .read 置于此级别来实现这一点,当通过 /farms/:farmid 访问时,我授予对单个农场的读取访问权限。如果我将“.read”移动到“farms”级别,这将导致授予对整个列表的读取访问权限。
所以我认为我需要重组我的数据,但不确定如何最好地解决这个问题?我不想在用户对象下方添加农场对象,因为我还想向任何给定的农场添加许多“编辑器”用户。
谢谢你的帮助
javascript - 如何使用 angularFireCollection 初始加载回调?
我一直试图在我的角度服务中正确处理与 Firebase 的显式同步。我使用 angularFireCollection 和初始加载回调函数(我需要根据第一个查询返回的数据预加载其他数据)。但是,我不知道应该如何访问回调函数中获取的数据:
在上面的示例中,如何从组对象访问实际数据?d 提前感谢您的任何提示。