Angularjs AngularFire简单登录(电子邮件/密码)-访问控制允许来源/未知错误

Angularjs AngularFire简单登录(电子邮件/密码)-访问控制允许来源/未知错误,angularjs,firebase,angularfire,firebase-security,Angularjs,Firebase,Angularfire,Firebase Security,因此,我正在尝试在我的AngularJS应用程序中进行最简单的SimpleLogin电子邮件/密码验证。我为我的应用程序设置了一个forge,我可以成功地读取和写入数据,并且我正在使用该引用进行身份验证。我已经在我的仪表板中启用了电子邮件/密码身份验证,并添加了一个我正在尝试进行身份验证的注册用户。我没有启用其他形式的身份验证 注意:我正在本地运行这段代码,127.0.0.1:9000,所以我不知道这对结果是否有任何影响(希望没有,我不想在实时服务器上构建这段代码…) 无论如何,关于代码 ===

因此,我正在尝试在我的AngularJS应用程序中进行最简单的SimpleLogin电子邮件/密码验证。我为我的应用程序设置了一个forge,我可以成功地读取和写入数据,并且我正在使用该引用进行身份验证。我已经在我的仪表板中启用了电子邮件/密码身份验证,并添加了一个我正在尝试进行身份验证的注册用户。我没有启用其他形式的身份验证

注意:我正在本地运行这段代码,
127.0.0.1:9000
,所以我不知道这对结果是否有任何影响(希望没有,我不想在实时服务器上构建这段代码…)

无论如何,关于代码

=====================================

这就是我的观点:

<button ng-click="dummySignin()">Dummy Signin</button>
我知道Firebase引用设置正确,因为当我尝试一个随机电子邮件地址时,我会返回一个
无效电子邮件
错误。当我使用正确的电子邮件地址时,返回的是JSON:

error: {
  code: "UNKNOWN_ERROR",
  data: {
    message: "FirebaseSimpleLogin: FirebaseSimpleLogin: An unknown error occurred."
  }
}
此外,我在控制台中收到此消息(作为错误,而不是通过console.log):

我的授权请求来源列表中确实有
localhost
127.0.0.1
,但这并不重要,因为(据我所知)这只会影响OAuth登录方法,如Facebook和Twitter。这个错误的另一个奇怪之处是,查询字符串中的
firebase
变量看起来像是指向localhost(显然被截断了…),所以我不知道到底发生了什么

据我所知,我做的一切都是对的,但我仍然不知道是什么导致了这个问题。我缺少什么?

更新:

因此,在将我的实际项目代码发送给Firebase的Rob后,他回击了我:

在实例化Firebase简单登录客户端时,需要传递 在Firebase引用(即新Firebase(…))中,而不是在 角度服务或角度射击物体。在中替换itemListService 上面带有
newfirebase('https://myapp.firebaseio.com/)
似乎马上就好了

上面的示例代码没有反映这一点(当然是导致问题的原因之一),但假设我的服务名为“FirebaseService”,我的实际代码如下所示:

$scope.auth = $firebaseSimpleLogin(FirebaseService);
为此:

var firebaseRef = new Firebase('http://myapp.firebasio.com');
$scope.auth = $firebaseSimpleLogin(firebaseRef);
因此,现在我不再使用我的服务返回Firebase引用(我仍然使用它来读取和写入数据),而是将对Firebase的直接引用传递到$scope.auth中,然后我可以成功地在上调用
$login()


谢谢你,罗伯

[Firebase的工程师]这看起来确实很奇怪,我们想帮助弄清真相。你能在firebase.com上找到rob吗?在一段无法测量的时间过去后,我愤怒地啃着我的鼠标垫,试图找出到底是什么导致了这个问题。说得委婉一点,firebase文档是一团糟。感谢您发布此消息。@mklickman您是否碰巧有用于此功能的plunker或codepen?@KylePennell我没有,尽管我的项目在Github上。这里有到的链接。
$scope.auth = $firebaseSimpleLogin(FirebaseService);
var firebaseRef = new Firebase('http://myapp.firebasio.com');
$scope.auth = $firebaseSimpleLogin(firebaseRef);