Pass multiple params via Firebase Dynamic links Android

4.7k views Asked by At

I've used Firebase Dynamics link and it can open my app, go to play store or go to an URL. But when I pass some parameters through link, I can only get first parameter. Here's my dynamic links:

https://xx.app.goo.gl/?link=http://xx.com/?usn=abc&pass=def&apn=com.xx&afl=http://google.com

And I used this code to get the link:

// Build GoogleApiClient with AppInvite API for receiving deep links
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .enableAutoManage(this, this)
                .addApi(AppInvite.API)
                .build();

        // Check if this app was launched from a deep link. Setting autoLaunchDeepLink to true
        // would automatically launch the deep link if one is found.
        boolean autoLaunchDeepLink = false;
        AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink)
                .setResultCallback(
                        result -> {
                            if (result.getStatus().isSuccess()) {
                                // Extract deep link from Intent
                                Intent intent = result.getInvitationIntent();
                                String deepLink = AppInviteReferral.getDeepLink(intent);
                                Logger.e(deepLink);
                            }
                        }
                );

And the log print: http://xx.com/?usn=abc (the pass=def was lost) Anyone resolve this issue?

2

There are 2 answers

2
Alex Bauer On BEST ANSWER

You need to URL encode the value of the link parameter, otherwise the system can't tell what is a parameter of the Dynamic Link and what is a sub-paramater of the link parameter of the Dynamic Link.

This means the final URL should look like https://xx.app.goo.gl/?link=http%3A%2F%2Fxx.com%2F%3Fusn%3Dabc%26pass%3Ddef&apn=com.xx&afl=http://google.com

Important note: if you are (as I suspect) attempting to pass usernames and passwords through as plaintext link parameters, this is an incredibly bad idea. Seriously, do not do this. Read this answer for the proper approach to a requirement like this.

0
akash maurya On

Simply as you pass in url:

https://link.example.com?param="value1"&param2="value2" ...