科尔多瓦Firebase谷歌登录-登录错误!错误:在完成操作之前,用户已取消了重定向操作

时间:2018-09-26 18:29:49

标签: javascript firebase firebase-authentication

登录页面打开,我使用我的Gmail ID登录,然后直接回到应用程序,然后显示此错误。不知道我在哪里失踪。

我只为Firebase添加了两个js文件。

firebase-app.js firebase-auth.js

<script>
  // Initialize Firebase
  var configfirebase = {
    apiKey: "***********************",
    authDomain: "*****************.firebaseapp.com",
    databaseURL: "https://f*************.firebaseio.com",
    projectId: "************",
    storageBucket: "************",
    messagingSenderId: "**********",
  };
  firebase.initializeApp(configfirebase);
</script>


    var provider = new firebase.auth.GoogleAuthProvider();
function firebaselogin() {

    firebase.auth().signInWithRedirect(provider).then(function() {
      return firebase.auth().getRedirectResult(); // never reach here.
    }).then(function(result) {
      var token = result.credential.accessToken;  // never reach here.
      var user = result.user;
      app.dialog.alert('Login success!! Welcome:' + result.user );
    }).catch(function(error) {
      // Handle Errors here.
      var errorCode = error.code;
      var errorMessage = error.message;
     app.dialog.alert('Login error!! error:' + errorMessage );
      // reach here and shows error.
    });


}

我已经阅读了几篇有关同一主题的文章,但没有一篇使用默认的auth域给出答案。有人通过使用自定义域解决了问题,但请帮助我。

enter image description here

我拥有的cordova插件列表

cordova plugin list branch-cordova-sdk 2.6.24 "branch-cordova-sdk" cordova-plugin-add-swift-support 1.7.2 "AddSwiftSupport" cordova-plugin-browsertab 0.2.0 "cordova-plugin-browsertab" cordova-plugin-buildinfo 2.0.2 "BuildInfo" cordova-plugin-cocoapod-support 1.6.0 "Cordova CocoaPods Dependency Support" cordova-plugin-compat 1.2.0 "Compat" cordova-plugin-customurlscheme 4.3.0 "Custom URL scheme" cordova-plugin-facebook4 3.0.0 "Facebook Connect" cordova-plugin-firebase 2.0.2 "Google Firebase Plugin" cordova-plugin-firebase-auth-google 1.1.6 "Firebase Authentication" cordova-plugin-firebase-authentication 1.0.1 "cordova-plugin-firebase-authentication" cordova-plugin-inappbrowser 3.0.0 "InAppBrowser" cordova-plugin-whitelist 1.3.3 "Whitelist" cordova-spotify 0.5.0 "cordova-spotify" cordova-spotify-oauth 0.1.10 "cordova-spotify-oauth" cordova-support-android-plugin 1.0.1 "cordova-support-android-plugin" cordova-support-google-services 1.2.1 "cordova-support-google-services" cordova-universal-links-plugin 1.2.1 "Universal Links Plugin"

2 个答案:

答案 0 :(得分:1)

我再次从头到尾浏览了文档。我发现我错过了在singleTask的{​​{1}}行下方添加插件的过程。

screenshot for docs

如果用于Android应用程序,则使用config.xml

用您的应用的iOS捆绑包ID替换 com.firebase.cordova

singleTask

cordova plugin add cordova-plugin-customurlscheme --variable URL_SCHEME=com.firebase.cordova --save <preference name="AndroidLaunchMode" value="singleTask" /> com.firebase.cordova中给出的应用程序小部件ID。


注意:我只想给您一条小消息。请严格按照自上而下的文档操作,以免发生此类错误。

我忽略了该安装,因为我不明白如何将多行代码复制到命令提示符下,并认为它将产生错误。所以我跳过了它,遇到了这个问题。

现在我添加了它,并且可以正常工作。

答案 1 :(得分:1)

ALSO

我正在使用PhoneGap Build。问题是Universal-links标记未复制到AndroidManifest.xml。所以解决方案是

  1. 安装cordova-universal-links-plugin-fix
  2. 如果要将通用链接标记保留在config.xml中,请保留它。还要将其添加到 config.xml

在顶部的小部件标签中添加

xmlns:android="http://schemas.android.com/apk/res/android"

在config.xml中的任何位置添加以下代码 ,我更喜欢在插件之前或在非病毒链接标签旁边

<config-file target="AndroidManifest.xml" parent="/manifest/application/activity">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:host="****-***.firebaseapp.com" android:pathPrefix="/__/auth/callback" android:scheme="https" />
    </intent-filter>
</config-file>

现在,当使用phonegapbuild或本地cordova CLI构建应用程序时,它将复制应该在清单文件中的通用链接数据。当应用程序运行并调用firebase.auth()。getRedirectResult()时,它不会给出任何类似

的错误

用户身份验证/已取消。重定向在完成之前已被用户取消

使用cordova CLI构建用户应用程序后,请在运行cordova build android之后,确保清单文件中的活动标签下具有上述intent-filter标签。