firebase onAuth()引发:TypeError无法读取属性'auth'的未定义
firebase onAuth() throwing: TypeError cannot read property 'auth' of undefined
我使用Firebase作为我的主要后端解决方案,并创建了一个在整个应用程序中处理身份验证的服务(由于我开始使用simpleLogin,现在我正尝试使用他们的内置登录方法,我认为在从应用程序的其他部分访问之前,最好先确定所有范围)。
我的firebase引用运行良好,auth方法也是如此
但是侦听方法onAuth()和offAuth(
Uncaught TypeError:无法读取未定义-firebase debug.js:9954的属性"auth"这是firebase本身的bug吗?还是有人看到我做错了什么?尝试使用angular版本,并关闭其他bower包,如angularfire和firebase简单登录,但迄今为止没有成功。
我的身份验证服务代码如下,除了在.constant服务上定义url之外,我没有做任何事情。
angular.module('myApp') .factory('auth', function (firebaseAPIUrl) { var ref = new Firebase(firebaseAPIUrl), onAuth = ref.onAuth, offAuth = ref.offAuth; onAuth(function (authData) { console.log(authData); }); function getCurrentUser() { return ref.getAuth(); } ... return { onAuth: onAuth, offAuth: offAuth, getCurrentUser: getCurrentUser, ... } }
在JavaScript中,传递函数以供稍后调用时,重要的是要注意调用该函数的作用域。例如,在定义闭包时,闭包将有自己的作用域,this
可能不再指向我们的原始对象。使用fn.bind(...)
解决了这个问题。
这可能会变得棘手,因为您正在使用的代码可能取决于特定的范围。诀窍是确保在将函数作为参数传递时作用域没有改变,这可以通过在传递之前显式地将方法绑定到原始对象来实现。
结账http://www.reactive.io/tips/2009/04/28/binding-scope-in-javascript/和http://alistapart.com/article/getoutbindingsituations深入探讨这个话题。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在选项卡上定义属性'的主窗口对象
- 锚点元素的href属性自动更改
- firebase onAuth()引发:TypeError无法读取属性'auth'的未定义
- 如何在ember-simple-auth中访问会话属性