这件事我已经绞尽脑汁好几个星期了。我有麻烦得到一个自定义密码重置,让用户重置他们的应用程序内的密码。
到目前为止,我能够做到以下几点:
以下是我遇到的问题:
我一定是漏掉了什么,但我不确定可能是什么。以下是我的设置:
下面的代码是actionCodeSettings和password reset电子邮件代码(编辑的敏感内容):
String url = "https://xxxxx.com";
ActionCodeSettings settings = ActionCodeSettings.newBuilder()
.setAndroidPackageName(
getPackageName(),
true, /* install if not available? */
null /* minimum app version */)
.setHandleCodeInApp(true)
.setUrl(url)
.build();
mAuth.sendPasswordResetEmail(email, settings)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "Email sent.");
hideProgressDialog();
Toast.makeText(ForgotPasswordActivity.this, getString(R.string.alert_passwordResetConfirm),
Toast.LENGTH_SHORT).show();
}
else {
Exception e = task.getException();
Log.w(TAG, "passwordResetRequest:failure " + e.getMessage(), task.getException());
hideProgressDialog();
Toast.makeText(ForgotPasswordActivity.this, e.getMessage(),
Toast.LENGTH_SHORT).show();
if (e instanceof FirebaseAuthInvalidCredentialsException) {
emailText.setError(getString(R.string.validate_email));
}
}
}
});
Android清单xml材料:
<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="xxxxx.app.goo.gl" android:scheme="http"/>
<data android:host="xxxxx.app.goo.gl" android:scheme="https"/>
</intent-filter>
当用户返回app时抓取深度链接数据的代码:
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
}
if (deepLink != null) {
Log.d(TAG, "Received Deep Link Data: " + deepLink.toString());
}
else {
Log.d(TAG, "Received Deep Link Data: " + null);
}
// Handle the deep link. For example, open the linked
// content, or apply promotional credit to the user's
// account.
// ...
// ...
}
})
.addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "getDynamicLink:onFailure", e);
}
});
最后,给出了用户将在电子邮件中收到的示例URL:
https://xxxxx.app.goo.gl?link=https://xxxxx-00000.firebaseapp.com/__/auth/action?apiKey%<api key redacted>%26mode%3DresetPassword%26oobCode%3D<reset code redacted>%26continueUrl%3Dhttps://xxxxx.app.goo.gl/pass%26lang%3Den&apn=com.xxxxx.android
如有任何帮助,将不胜感激。
附注。文档中有一些提到,为了在应用程序中获取深度数据,我们调用了launcher(activity)中的FireBasedynamicLinks.getDynamicLink()以及deep link(activity)。我也试过了...数据还是空的。
补充说明:如果我在深链接打开的activity里放了以下内容:
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
Log.d(TAG, "Data Data?: " + data.toString());
我会得到用户点击后将他们带到应用程序的完整路径。
提前感谢您的帮助!
我没有深入了解您的答案,但我注意到一个危险信号,因为您正在将FDL链接设置为您的深度链接“https://xxxxx.app.goo.gl/pass”
// I speculate this is the root cause. You are ending up with a double
// dynamic link. Change this to a webpage you own.
String url = "https://xxxxx.app.goo.gl/pass";
ActionCodeSettings settings = ActionCodeSettings.newBuilder()
.setAndroidPackageName(
getPackageName(),
true, /* install if not available? */
null /* minimum app version */)
.setHandleCodeInApp(true)
.setUrl(url)
.build();
我正在使用firebase来验证我的android应用程序中的用户。我在登录窗口中为用户提供了一个重置密码的选项。当用户点击按钮,它发送电子邮件成功。然而,当用户点击链接时,它总是显示 “请重置密码。重置密码的请求已过期,或链接已被使用” 2016年8月31日更新 我与firebase支持取得了联系,看起来API键有一些bug。如果更改浏览器API密钥,则不会更新。现在这个bug已经修复,重置密码
有没有办法让用户在重置密码时重置其firebase密码,而无需实际验证帐户? 最初创建帐户时,用户信息中的“已验证”设置为false,一旦创建帐户,我们将收到一封带有验证帐户url的电子邮件。但是,当用户“忘记密码”时,密码重置邮件将发送给用户,当用户实际重置密码时,firebase userinfo“验证”设置为true。
调用 使用从动态链接获取查询参数(在本例中获取用于重置密码的密码代码。 在上一步中使用oobCode并调用按钮单击(从Use inputted editText字段中获取密码)来重置密码。 理想情况下,我希望在密码重置后登录我的用户。为了做到这一点,我需要有电子邮件地址使用密码重置(我需要从试图登录的用户获得firestore文档信息)。 所以我需要能够传递电子邮件地址到屏幕重置密码。 以下是我的
我有一个kubernetes集群,安装了保险库(通过头盔图表)。 我想将机密从vault填充到pod中的文件(例如nginx),并每5分钟刷新一次机密。 我使用以下配置对其进行了测试(使用适当的vault策略/后端身份验证): namespace.yaml Service_account.yaml nginx-deployment.yaml 当我将此配置应用于kubernetes集群时,将创建部署
我正在使用Firebase以及作为Firebase动态链接的一部分生成的url。 > firebase动态url如下所示:例如:https://myapp.page.link/h1c4 用户收到电子邮件并点击验证链接。 在重定向结束时,我可以看到url包含如下所示的oobCode: https://myapp.page.link/h1c4?apikey=&oobcode=yg2n2elu4qgbs
在工作中,当通过firebase门户创建动态链接时,我们尝试使用可选的活动跟踪UTM参数。 动态链接工作正常,据我所知,从所有官方文档中可以看出,在创建动态链接时,只需在最后一个可选步骤中添加UTM值,就应该会导致这些值与事件一起发送。 但是,当我们在dynamic_link_app_open事件的事件或转化标签上查看没有看到任何归因值。我们看到该事件正在发送,但我们只是没有获得广告系列归因值,因