Не удалось получить данные из короткой динамической ссылки - Firebase

Когда я создаю динамические ссылки, содержащие параметры UTM, и делюсь ими, я смог получить данные и закодированные запросы из ссылки. Но когда я пытаюсь создать короткую ссылку динамической ссылки с помощью метода, рекомендованного Firebase, я могу получить только путь, но не закодированные запросы. как мне это решить?

СПОСОБ СОЗДАНИЯ ДИНАМИЧЕСКОЙ ССЫЛКИ:

public void buildReferral() {
    DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLink(Uri.parse("sample link"))
            .setDynamicLinkDomain("sample domain")
            .setAndroidParameters(
                    new DynamicLink.AndroidParameters.Builder("com.package.my")
                            .build())
            .setGoogleAnalyticsParameters(
                    new DynamicLink.GoogleAnalyticsParameters.Builder()
                            .setSource("referral")
                            .setContent("content")
                            .setMedium("Android")
                            .build())
            .buildDynamicLink();
    buildShortUrl(dynamicLink);
}

СПОСОБ СОЗДАНИЯ КОРОТКОЙ ССЫЛКИ:

 public void buildShortUrl(DynamicLink dynamicLink) {
    Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLongLink(Uri.parse(dynamicLink.getUri().toString()))
            .buildShortDynamicLink()
            .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
                @Override
                public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                    if (task.isSuccessful()) {
                        // Short link created
                        Uri shortLink = task.getResult().getShortLink();
                        Uri flowchartLink = task.getResult().getPreviewLink();
                    } else {
                        // Error
                        // ...
                    }
                }
            });
}

person Aswathaman Ragunathan    schedule 20.05.2018    source источник
comment
Как вы делитесь сокращенной ссылкой? Передать его AppInviteInvitation.IntentBuilder().setDeepLink()?   -  person Bob Snyder    schedule 20.05.2018
comment
Намерение намерения = новое AppInviteInvitation.IntentBuilder (Поделиться через) .setMessage (getString (R.string.referral_text)) .setDeepLink (shortLinkUri) .setCallToActionText (Установить) .build (); startActivityForResult (намерение, 100); так делится короткая ссылка. @BobSnyder   -  person Aswathaman Ragunathan    schedule 21.05.2018
comment
По моему опыту, AppInvite сокращает ссылку, которую вы передаете на setDeepLink(). Я не думаю, что есть смысл сокращать его перед переходом к setDeepLink(). Я могу отправить длинную ссылку с параметрами, просмотреть полученную короткую ссылку и извлечь параметры из URI в полученных данных динамической ссылки.   -  person Bob Snyder    schedule 21.05.2018
comment
Мне не удалось пригласить пользователей через WhatsApp с помощью приглашений firebase. поэтому я подумал о том, чтобы сократить ссылку и поделиться ею через Intent, как правило, в WhatsApp. Есть ли способ поделиться ссылками на WhatsApp с помощью firebase?   -  person Aswathaman Ragunathan    schedule 21.05.2018
comment
Насчет WhatsApp не знаю. Я предполагаю, что вы можете сократить ссылку, как вы это делаете, и вставить ее в текстовое сообщение. В моем приложении, если пользователь хочет отправить динамическую ссылку с помощью Firebase Invites, я отправляю длинную ссылку. Или пользователь может поделиться ссылкой с помощью SMS или электронной почты. В таких случаях я сокращаю ссылку, как и вы.   -  person Bob Snyder    schedule 21.05.2018


Ответы (1)


Вы можете использовать appendQueryParameter() для добавления нескольких параметров к ссылке, а с помощью getQueryParameter() вы можете получить параметры из ссылки. Вы можете увидеть этот ответ, как этого добиться. .

person Rohit Maurya    schedule 21.05.2018
comment
Спасибо за ответ, но я хочу получить параметры, переданные здесь, а не те, которые я передаю с помощью appendQuery () - .setGoogleAnalyticsParameters (new DynamicLink.GoogleAnalyticsParameters.Builder () .setSource (referral) .setContent (content) .setMedium (Android) .строить()) - person Aswathaman Ragunathan; 21.05.2018