我正在创建一个需要Facebook登录的应用程序,我正在使用Firebase API中的authWithOPopup来执行此操作。我花了好几个小时试图修复这个问题,并且已经有很多修复,但它们都没有为我工作。我正在用Ionic View测试应用程序。
当我在浏览器中提供应用程序时,它可以很好地工作,但它不会在本机环境中运行。它在我的三星Galaxy 5上运行良好,但它不适用于我尝试过的任何iPhoen。然后,一旦输入凭据,屏幕变为白色,就会出现Facebook登录信息。这是我的代码:
.controller('FacebookCtrl', function($scope, $state) {
$scope.login = function() {
// Facebook login
ref.authWithOAuthPopup("facebook", function(error, authData) {
if (error) {
console.log("Login Failed!", error);
} else { // Login successful
console.log("Authenticated successfully with payload:",
...
我已经安装了相应的InAppBrowser和cordova.js文件:
<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
我已尝试过每一步一步的教程,但我仍然无法使用,firebase版本为2.4.1,cordova版本为6.0.0。
答案 0 :(得分:2)
这种集成可能是一件棘手的事情,因为我们(Firebase)没有以编程方式检测InAppBrowser,而是试图嗅出它并尽最大努力尝试使用它。如果你被困在白色屏幕上,这意味着(a)整个页面被重定向,InAppBrowser实际上没有被使用或(b)Firebase的传输被破坏。
下面有关于调试的一些注意事项,但是 note 您应该检查InAppBrowser版本。根据{{3}},对于我们在v1.2.0到v1.3.0之间的用例,InAppBrowser有点坏了。
<强> 调试: 强>
ref.authWithOAuthPopup(...)
的页面上,尝试console.log(cordova)
。 cordova
在范围内,还是未定义?如果未定义,请查看您的构建过程,或者您的脚本包含。window.open('https://www.google.com', '_blank');
。应用程序是否在 InAppBrowser 中加载,您可以在其中看到弹出框架,其中包含要关闭的选项,还是整个页面被重定向?如果是后者,请深入了解 InAppBrowser 不可用的原因,从页面中cordova
var的存在开始。