我正在开发一个Android应用程序,我已经使用Firebase密码认证来登录用户。
在用户提供他们的电子邮件和密码后,我将使用FirebaseAuth SDK发送一封验证电子邮件。
/** SEND A VERIFICATION MAIL TO THE USER **/
ActionCodeSettings.Builder settingBuilder = ActionCodeSettings.newBuilder();
String url = getString(R.string.link_mail_verification);
settingBuilder.setUrl(url).setHandleCodeInApp(true);
ActionCodeSettings settings = settingBuilder.build();
user.sendEmailVerification(settings).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Log.e("MAIL_VERIFICATION", "onComplete: mail verification sent" );
}else{
// not sent
}
}
});
在验证他们的电子邮件时,我希望用户在应用程序中被直接重定向,如果它是安装的,这就是我使用动态链接的地方
FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent()).addOnSuccessListener(new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
Uri deepLink = null;
if(pendingDynamicLinkData != null){
deepLink = pendingDynamicLinkData.getLink();
}
// trying to get from the intent
if(deepLink != null){
Uri intentData = getIntent().getData();
if(intentData != null){
String code = getIntent().getStringExtra("oobCode"); // always returns null
}
}
}
});
方法2:尝试从PendingDynamicLinkData获取查询参数
FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent()).addOnSuccessListener(new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
Uri deepLink = null;
if(pendingDynamicLinkData != null){
deepLink = pendingDynamicLinkData.getLink();
}
// trying to get from the deep link URI
if(deepLink != null){
String code = deepLink.getQueryParameter("oobCode"); // returns null too
}
}
});
下面是我的manifest.xml
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:host="@string/app_link_domain"
android:scheme="https"
/>
</intent-filter>
</activity>
这不是一个正式的答案--只是根据我的经验--附加到动态链接本身的查询参数不会传递到您的深层链接。解决方案:如果您想要将查询参数追加到您的深层链接(用户通过动态链接获得的实际url),那么您所要做的就是在创建动态链接时追加这些参数。在您的例子中--在创建链接时,您应该在firebase控制台中定义“https://leliberalpress.com/verification?some_param=some_value&another_param=some_other_value”,而不是“https://leliberalpress.com/xkts”,动态链接本身没有查询参数--即保留:“https://leliberalpress.page.link/xkts”
我直接在web界面中生成了一个新的动态链接。这基本上将用于每个人,或者这是我的希望。让我们将该链接称为link.some-app.com/email-link。然后,我将其设置为指向https://some-app-123f.firebaseapp.com/__/auth/action。去第一个带我去第二个,到目前为止一切都很好。这些链接只是打开网页,而不是应用程序,也没有中间页面。 我可以用li
我已经在我的设备上本地开发了一个android应用程序(应用程序还没有在android play商店上)。我有以下逻辑在主体活动中获得深度链接。 我用Firebase控制台建立了一些动态链接,并在手机浏览器中打开。但它不是打开我的应用程序并到达行字符串deepLink=appinvitereferral.getdeeplink(intent); 我在清单文件中有意图过滤器。
我在firebase控制台中创建了一个动态链接,这个动态链接指向Play Store中的一个应用程序(即我使用这个链接通过WhatsApp与其他用户共享这个应用程序)。另外,我通过getDynamicLink方法在我的应用程序中接收深度链接。 当我向动态链接追加查询参数()时,Play Store页面将出现,但我无法在link方法中接收深度链接,该链接为空。如何将查询参数追加到动态链接并在安装时重
我遵循了Firebase动态链接文档中的所有步骤: 已将团队Id添加到firebase控制台 已添加自定义域 启用的关联域 已添加到信息URL方案 然而,当我点击动态链接时,它总是重定向到AppStore,而不是应用程序。我已经尝试了不间断的应用程序,重新启动手机和重新安装。如何让这个深度链接发挥作用? 附注:我的应用程序还没有发布到AppStore。
有人试用过新的Firebase SDK for Unity吗(https://firebase.google.com/docs/unity/setup)? 当我尝试集成动态链接功能时,当有邀请时,它会使应用程序崩溃。 我创建了一个全新的项目与最低设置(https://firebase.google.com/docs/dynamic-links/unity)为Android添加动态链接到我的项目。当
Playstore应用程序中有2个案例 正常安装(Playstore显示打开按钮) 测试用例: 从Firebase动态链接下载应用程序,安装后Playstore将显示“继续”按钮: 有两个选项,用户可以在成功安装后从中打开应用程序。 单击“继续”按钮打开应用程序- 大多数用户没有点击“继续”按钮,因为这是正常的人类行为,因此我失去了“推荐人”链接。 这是Firebase的预期行为吗?如何避免这个问