Search code examples
firebasedeep-linkingfirebase-dynamic-links

Firebase ShortDynamicLink not completing task


Following is how I'm creating dynamic link

     //Buiid dynamic link
    DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLink(Uri.parse("https://www.chefcookrecipe.com/"))
            .setDynamicLinkDomain("chefcookrecipe.page.link")
            // Open links with this app on Android
            .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
            .buildDynamicLink();

    String dynamicLongUri = dynamicLink.getUri().toString();
    Toast.makeText(Edit_Recipes.this, dynamicLongUri, Toast.LENGTH_SHORT).show();

The same url:"https://www.chefcookrecipe.com/" is what I set as Deep link URL in firebase, and https://chefcook.page.link is my domain in firebase.

I'm getting the long link correctly. However, when I tried to generate short link with the following code

shortLinkTask.addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
        @Override
        public void onComplete(@NonNull Task<ShortDynamicLink> task) {
            if (task.isSuccessful()) {
                // Short link created
                shortLink = task.getResult().getShortLink().toString();
                Uri flowchartLink = task.getResult().getPreviewLink();

                Toast.makeText(Edit_Recipes.this, shortLink, Toast.LENGTH_SHORT).show();
            } else {

                Toast.makeText(Edit_Recipes.this, "null", Toast.LENGTH_SHORT).show();
            }
        }
    });

I always get null. Please help I don't know what I'm missing.


Solution

  • I ran into same error couple of months ago. I spent all day finding what was wrong.

    As long as it is reaching the conditional (if-else) statement, Your code is completely correct and nothing wrong at all.

    Solution It is usually a typographical error.

    1. Calm yourself.
    2. Make sure that both Deep link URL and Domain name are the same.(This is where the error usually lies). Do a copy and paste instead of typing.