无法使用cordova在android上获得firebase oauth

Posted

技术标签:

【中文标题】无法使用cordova在android上获得firebase oauth【英文标题】:Can't get firebase oauth with cordova working on android 【发布时间】:2018-05-29 21:34:25 【问题描述】:

我正在尝试使用 google 和 facebook 将 Firebase oauth 添加到我的项目中。

我添加到项目中的插件:

cordova-plugin-browsertab 0.2.0 "cordova-plugin-browsertab" cordova-plugin-buildinfo 2.0.1 “BuildInfo” cordova-plugin-compat 1.2.0“兼容” cordova-plugin-inappbrowser 1.7.2“InAppBrowser” cordova-plugin-whitelist 1.3.3“白名单” cordova-universal-links-plugin 1.2.1“通用链接插件”

我现在使用 android 6.2.3 作为我的平台,我正在考虑以后添加 ios

我的问题是,对于使用 firebase 服务的每个登录请求,我都会收到 auth/redirect-cancelled-by-user 作为响应。

我已按照官方教程中的说明进行操作。我添加了:

<universal-links>
    <host name="URL" scheme="https" />
    <host name="package name" scheme="https">
        <path url="/__/auth/callback" />
    </host>
</universal-links>

进入我的 config.xml 文件。

【问题讨论】:

确保将authDomain 替换为package_name。还要确保您的 FDL 域也添加到 universal-links。如果您碰巧使用自定义 authDomain,请确保使用该 .firebaseapp.com 而不是 .firebaseapp.com 我已经检查过了,我没有使用自定义 AuthDomain。 你的链接拦截明显有问题。尝试查看是否收到传入链接:universalLinks.subscribe(null, function(event) console.log(event.url);); 我已经试过了,没有日志,我不知道我是否把它放在正确的地方。我正在 onDeviceReady 的 index.js 中订阅 如果没有记录任何内容,那么您的重定向设置有问题。无法根据可用信息判断哪个部分。尝试使用该插件进行基本的网络到移动重定向。 【参考方案1】:

您好,我花了 5 个小时来解决这个问题。我正在使用 PhoneGap 构建。问题是 Universal-links 标签未复制到 AndroidManifest.xml。所以解决方案是

    安装cordova-universal-links-plugin-fix 如果您想在config.xml 中保留universal-links 标签,请保留它。但也将其添加到 config.xml

在顶部添加小部件标签

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

添加以下代码config.xml中的任何地方我更喜欢在插件之前或在unvirsal-links标签旁边

<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 后确保清单文件中的活动标记下有上述意图过滤器标记。

【讨论】:

以上是关于无法使用cordova在android上获得firebase oauth的主要内容,如果未能解决你的问题,请参考以下文章

Cordova 地理定位无法在 Android 上运行

无法使用cordova在android上播放视频

无法使用 android 上的 cordova s​​ocialsharing 插件在 facebook 上共享自定义文本

再次删除并添加平台后,Cordova 无法在 Android 上运行

无法在 Cordova.x Android 上使用导航器地理定位最小示例

无法让 cordova-plugin-statusbar 在 Android 上设置颜色