Я работаю над приглашениями в моем приложении, я хочу, чтобы пользователи ссылались на других, реферер получит вознаграждение после того, как зарегистрированный человек зарегистрировался.Я следовал этому учебнику по приглашению firebase , на шаге 2 мы создали динамическую ссылку из нашей обычной ссылки с нашим параметром invitedby=SENDER_UID
вроде
String link = "https://samplelink.com/?invitedby=" + user.getPhone();
Log.e(TAG, "Generated link: "+link);
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse(link))
.setDynamicLinkDomain(getString(R.string.dynamic_link_domain))
.setAndroidParameters(
new DynamicLink.AndroidParameters.Builder(getPackageName())
.build())
.setIosParameters(
new DynamicLink.IosParameters.Builder("com.example.ios")
//.setAppStoreId("123456789")
// .setMinimumVersion("1.0.1")
.build())
.buildShortDynamicLink()
.addOnSuccessListener(shortDynamicLink -> {
Uri mInvitationUrl = shortDynamicLink.getShortLink();
Log.e(TAG, "generated URL: "+mInvitationUrl.toString());
Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invite_and_earn))
.setMessage(getString(R.string.invitation_message))
.setDeepLink(mInvitationUrl)
// .setCustomImage(Uri.parse(getString(R.string.invitation_custom_image)))
// .setCallToActionText(user.getPhone())
.build();
startActivityForResult(intent, REQUEST_INVITE);
}).addOnFailureListener(e -> Log.e(TAG, "Error Generating Deeplink: "+e.getLocalizedMessage()));
});
и отправилисгенерированный short dynamic link
.Когда пользователи открыли приложение на шаге 4 , мы получили ссылку, подобную
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 the user isn't signed in and the pending Dynamic Link is
// an invitation, sign in the user anonymously, and record the
// referrer's UID.
//
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user == null
&& deepLink != null
&& deepLink.getBooleanQueryParameter("invitedby")) {
String referrerUid = deepLink.getQueryParameter("invitedby");
createAnonymousAccountWithReferrerInfo(referrerUid);
}
}
});
Ссылка shorted dynamic link
генерирует штраф, и отправляет, если в браузере открывается оригинал https://samplelink.com/?invitedby=" + user.getPhone()
отображается, но в приложении я получаю только shortdynamiclink
, поэтому Inviteby никогда не найден.У кого-нибудь была эта проблема?
Пример моей короткой динамической ссылки