在我们正在构建的应用中,我们需要Firebase动态链接,因为“注册”是通过Firebase电子邮件链接登录进行的。此登录名将发送一封电子邮件到所提供的电子邮件地址,单击该电子邮件将通过动态链接打开该应用程序。为了保持用户的参与度,我们还希望发送推送通知。当我在GitHub上使用 chemerisuk 的版本时,可以使它们在Android上一起工作。我什至得到了一个iOS版本,但是我却无法在iOS上获得令牌。收到此错误消息:
Failed to fetch default token Error Domain=com.firebase.iid Code=1003 "(null)"
我已经仔细检查了Firebase Project设置(捆绑ID,应用程序ID前缀,云消息发件人ID,云消息APN密钥)和Apple设置(证书,置备配置文件,密钥和标识符)。我已经在模拟器和真实设备上尝试过。我曾经尝试过开发版本,App Store存档和Ad Hoc存档。
不幸的是,Cordova Firebase插件未包含动态链接。当我尝试添加其他fcm插件时,它包含完整的Firebase Core,与动态链接冲突。
我觉得我真的很亲密,谁对这两种插件组合有任何经验并且可以在iOS上运行?
这是我的环境:
Ionic:
ionic (Ionic CLI) : 4.0.2 (/usr/local/lib/node_modules/ionic)
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.1.8
Cordova:
cordova (Cordova CLI) : 8.0.0
Cordova Platforms : android 7.0.0, ios 4.5.5
System:
Android SDK Tools : 26.1.1
ios-deploy : 1.9.2
ios-sim : 6.1.2
NodeJS : v8.11.3 (/usr/local/bin/node)
npm : 5.6.0
OS : macOS High Sierra
Xcode : Xcode 9.4.1 Build version 9F2000
Environment:
ANDROID_HOME : /Users/user/Library/Android/sdk/
我的(相关的)科尔多瓦config.xml:
<?xml version='1.0' encoding='utf-8'?>
<widget android-packageName="com.example.android" android-versionCode="10001" id="com.example.app" ios-CFBundleIdentifier="com.example.ios" ios-CFBundleVersion="1.0.1" version="1.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Example</name>
<description>Some description</description>
<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<preference name="ScrollEnabled" value="false" />
<preference name="BackgroundColor" value="0xff168aa5" />
<preference name="android-minSdkVersion" value="16" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="Orientation" value="portrait" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3000" />
<platform name="android">
<resource-file src="google-services.json" target="app/google-services.json" />
<allow-intent href="market:*" />
<icon />
<splash />
</platform>
<platform name="ios">
<resource-file src="GoogleService-Info.plist" />
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<icon />
<splash />
</platform>
<plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
<plugin name="cordova-plugin-device" spec="^2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />
<plugin name="cordova-plugin-ionic-webview" spec="^1.2.1" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.2" />
<plugin name="cordova-plugin-x-socialsharing" spec="^5.4.1" />
<plugin name="cordova-plugin-qrscanner" spec="^2.6.0" />
<allow-navigation href="http://192.168.178.19:8101" />
<plugin name="cordova-plugin-firebase-dynamiclinks" spec="^1.0.0">
<variable name="APP_DOMAIN" value="example.com" />
<variable name="PAGE_LINK_DOMAIN" value="ab123.app.goo.gl" />
<variable name="FIREBASE_DYNAMIC_LINKS_VERSION" value="+" />
</plugin>
<plugin name="cordova-plugin-firebase-messaging" spec="^1.1.0">
<variable name="FIREBASE_MESSAGING_VERSION" value="17.1.+" />
<variable name="ANDROID_SUPPORT_VERSION" value="27.+" />
</plugin>
<engine name="android" spec="7.0.0" />
<engine name="ios" spec="4.5.5" />
</widget>
答案 0 :(得分:0)
因为我只使用了Firebase库的一部分,所以我没有包括Firebase Analytics,因为我没有使用它。显然,其余插件必须正常工作。因此,安装cordova-plugin-firebase-analytics
是我的解决方法。
对于某些人来说,这是确保他们具有正确的Firebase项目设置。转到Firebase>云消息传递> iOS应用程序配置,并确保您已上传有效的APNs身份验证密钥或APNs证书。
希望这对希望同时使用Firebase消息传递和Firebase动态链接的其他人有所帮助!