Dynamic link is not cleared after retrieving












0















In my flutter app I'm using the firebase dynamic links plugin.



In the main function the retrieveDynamicLink is called and the link is handled, as well as every time the app is resumed a lifecycle listener calls retrieveDynamicLink again and handles the link.



The plugin calls the android method: getDynamicLink(registrar.activity().getIntent()), and the documentation states that this method should clean the intent to make any other call return null until the app is open/resumed from another link.



But that's not what is happening, not always at least.



If I open the app from a dynamic link, switch to another app, and then go back to the app, the retrieveDynamicLink call returns the link again.
If I originally open the app from its icon that does not happen.



Does anyone have any suggestion?



I'm using firebase_dynamic_links: ^0.1.0+1
on Flutter 0.11.7










share|improve this question























  • Yeah, I have the same issue, I remember when I did my test the firebase_dynamic_link was using this library: com.google.firebase:firebase-invites:16.0.1 , but now it's updated to api 'com.google.firebase:firebase-dynamic-links:16.1.2' , maybe there is an issue with that version. I'll open a new flutter issue

    – diegoveloper
    Nov 21 '18 at 21:28











  • well I see there is an open issue about that: github.com/flutter/flutter/issues/20944 @Dario lelardi , could you repo the issue on iOS? or only happens on android?

    – diegoveloper
    Nov 21 '18 at 21:31











  • new issue opened here: github.com/flutter/flutter/issues/24629

    – diegoveloper
    Nov 21 '18 at 21:35
















0















In my flutter app I'm using the firebase dynamic links plugin.



In the main function the retrieveDynamicLink is called and the link is handled, as well as every time the app is resumed a lifecycle listener calls retrieveDynamicLink again and handles the link.



The plugin calls the android method: getDynamicLink(registrar.activity().getIntent()), and the documentation states that this method should clean the intent to make any other call return null until the app is open/resumed from another link.



But that's not what is happening, not always at least.



If I open the app from a dynamic link, switch to another app, and then go back to the app, the retrieveDynamicLink call returns the link again.
If I originally open the app from its icon that does not happen.



Does anyone have any suggestion?



I'm using firebase_dynamic_links: ^0.1.0+1
on Flutter 0.11.7










share|improve this question























  • Yeah, I have the same issue, I remember when I did my test the firebase_dynamic_link was using this library: com.google.firebase:firebase-invites:16.0.1 , but now it's updated to api 'com.google.firebase:firebase-dynamic-links:16.1.2' , maybe there is an issue with that version. I'll open a new flutter issue

    – diegoveloper
    Nov 21 '18 at 21:28











  • well I see there is an open issue about that: github.com/flutter/flutter/issues/20944 @Dario lelardi , could you repo the issue on iOS? or only happens on android?

    – diegoveloper
    Nov 21 '18 at 21:31











  • new issue opened here: github.com/flutter/flutter/issues/24629

    – diegoveloper
    Nov 21 '18 at 21:35














0












0








0


2






In my flutter app I'm using the firebase dynamic links plugin.



In the main function the retrieveDynamicLink is called and the link is handled, as well as every time the app is resumed a lifecycle listener calls retrieveDynamicLink again and handles the link.



The plugin calls the android method: getDynamicLink(registrar.activity().getIntent()), and the documentation states that this method should clean the intent to make any other call return null until the app is open/resumed from another link.



But that's not what is happening, not always at least.



If I open the app from a dynamic link, switch to another app, and then go back to the app, the retrieveDynamicLink call returns the link again.
If I originally open the app from its icon that does not happen.



Does anyone have any suggestion?



I'm using firebase_dynamic_links: ^0.1.0+1
on Flutter 0.11.7










share|improve this question














In my flutter app I'm using the firebase dynamic links plugin.



In the main function the retrieveDynamicLink is called and the link is handled, as well as every time the app is resumed a lifecycle listener calls retrieveDynamicLink again and handles the link.



The plugin calls the android method: getDynamicLink(registrar.activity().getIntent()), and the documentation states that this method should clean the intent to make any other call return null until the app is open/resumed from another link.



But that's not what is happening, not always at least.



If I open the app from a dynamic link, switch to another app, and then go back to the app, the retrieveDynamicLink call returns the link again.
If I originally open the app from its icon that does not happen.



Does anyone have any suggestion?



I'm using firebase_dynamic_links: ^0.1.0+1
on Flutter 0.11.7







android firebase flutter firebase-dynamic-links






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 '18 at 18:45









Dario IelardiDario Ielardi

186112




186112













  • Yeah, I have the same issue, I remember when I did my test the firebase_dynamic_link was using this library: com.google.firebase:firebase-invites:16.0.1 , but now it's updated to api 'com.google.firebase:firebase-dynamic-links:16.1.2' , maybe there is an issue with that version. I'll open a new flutter issue

    – diegoveloper
    Nov 21 '18 at 21:28











  • well I see there is an open issue about that: github.com/flutter/flutter/issues/20944 @Dario lelardi , could you repo the issue on iOS? or only happens on android?

    – diegoveloper
    Nov 21 '18 at 21:31











  • new issue opened here: github.com/flutter/flutter/issues/24629

    – diegoveloper
    Nov 21 '18 at 21:35



















  • Yeah, I have the same issue, I remember when I did my test the firebase_dynamic_link was using this library: com.google.firebase:firebase-invites:16.0.1 , but now it's updated to api 'com.google.firebase:firebase-dynamic-links:16.1.2' , maybe there is an issue with that version. I'll open a new flutter issue

    – diegoveloper
    Nov 21 '18 at 21:28











  • well I see there is an open issue about that: github.com/flutter/flutter/issues/20944 @Dario lelardi , could you repo the issue on iOS? or only happens on android?

    – diegoveloper
    Nov 21 '18 at 21:31











  • new issue opened here: github.com/flutter/flutter/issues/24629

    – diegoveloper
    Nov 21 '18 at 21:35

















Yeah, I have the same issue, I remember when I did my test the firebase_dynamic_link was using this library: com.google.firebase:firebase-invites:16.0.1 , but now it's updated to api 'com.google.firebase:firebase-dynamic-links:16.1.2' , maybe there is an issue with that version. I'll open a new flutter issue

– diegoveloper
Nov 21 '18 at 21:28





Yeah, I have the same issue, I remember when I did my test the firebase_dynamic_link was using this library: com.google.firebase:firebase-invites:16.0.1 , but now it's updated to api 'com.google.firebase:firebase-dynamic-links:16.1.2' , maybe there is an issue with that version. I'll open a new flutter issue

– diegoveloper
Nov 21 '18 at 21:28













well I see there is an open issue about that: github.com/flutter/flutter/issues/20944 @Dario lelardi , could you repo the issue on iOS? or only happens on android?

– diegoveloper
Nov 21 '18 at 21:31





well I see there is an open issue about that: github.com/flutter/flutter/issues/20944 @Dario lelardi , could you repo the issue on iOS? or only happens on android?

– diegoveloper
Nov 21 '18 at 21:31













new issue opened here: github.com/flutter/flutter/issues/24629

– diegoveloper
Nov 21 '18 at 21:35





new issue opened here: github.com/flutter/flutter/issues/24629

– diegoveloper
Nov 21 '18 at 21:35












2 Answers
2






active

oldest

votes


















0














I've already fixed the issue on my repo, could you try using this config in pubspec.yaml:



firebase_dynamic_links:
git:
url: https://github.com/diegoveloper/plugins
path: packages/firebase_dynamic_links


Let me know if it works






share|improve this answer
























  • Unfortunately the bug is still there. When I originally open the app from the link, then every call to retrieveDynamicLink returns the link again.

    – Dario Ielardi
    Nov 22 '18 at 12:44













  • Yes, looks like it's an issue with the current android firebase dynamic link library.

    – diegoveloper
    Nov 22 '18 at 15:24



















0














Not a proper solution, but I noticed that adding a delay between the resume event and actually getting the dynamic link seems to solve the problem.



Might be useful as a temporary workaround.



I'm using 500ms.



Must be some kind of race condition involved.



The iOS implementation actually suffered from the same (similar) issue before:
https://medium.com/@diegoveloper/flutter-firebase-dynamic-link-6f1b79278ce0



Example code exists in the link.



But basically:



if (state == AppLifecycleState.resumed) {
_timerLink = new Timer(const Duration(milliseconds: 500), () {
_retrieveDynamicLink();
});
}


EDIT: Just noticed that @diegoveloper is the creator of both the article + workaround + the iOS fix and the new Android flutter plugin bug report.
So, thank you!






share|improve this answer

























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53418686%2fdynamic-link-is-not-cleared-after-retrieving%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    I've already fixed the issue on my repo, could you try using this config in pubspec.yaml:



    firebase_dynamic_links:
    git:
    url: https://github.com/diegoveloper/plugins
    path: packages/firebase_dynamic_links


    Let me know if it works






    share|improve this answer
























    • Unfortunately the bug is still there. When I originally open the app from the link, then every call to retrieveDynamicLink returns the link again.

      – Dario Ielardi
      Nov 22 '18 at 12:44













    • Yes, looks like it's an issue with the current android firebase dynamic link library.

      – diegoveloper
      Nov 22 '18 at 15:24
















    0














    I've already fixed the issue on my repo, could you try using this config in pubspec.yaml:



    firebase_dynamic_links:
    git:
    url: https://github.com/diegoveloper/plugins
    path: packages/firebase_dynamic_links


    Let me know if it works






    share|improve this answer
























    • Unfortunately the bug is still there. When I originally open the app from the link, then every call to retrieveDynamicLink returns the link again.

      – Dario Ielardi
      Nov 22 '18 at 12:44













    • Yes, looks like it's an issue with the current android firebase dynamic link library.

      – diegoveloper
      Nov 22 '18 at 15:24














    0












    0








    0







    I've already fixed the issue on my repo, could you try using this config in pubspec.yaml:



    firebase_dynamic_links:
    git:
    url: https://github.com/diegoveloper/plugins
    path: packages/firebase_dynamic_links


    Let me know if it works






    share|improve this answer













    I've already fixed the issue on my repo, could you try using this config in pubspec.yaml:



    firebase_dynamic_links:
    git:
    url: https://github.com/diegoveloper/plugins
    path: packages/firebase_dynamic_links


    Let me know if it works







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 21 '18 at 21:50









    diegoveloperdiegoveloper

    12.5k11630




    12.5k11630













    • Unfortunately the bug is still there. When I originally open the app from the link, then every call to retrieveDynamicLink returns the link again.

      – Dario Ielardi
      Nov 22 '18 at 12:44













    • Yes, looks like it's an issue with the current android firebase dynamic link library.

      – diegoveloper
      Nov 22 '18 at 15:24



















    • Unfortunately the bug is still there. When I originally open the app from the link, then every call to retrieveDynamicLink returns the link again.

      – Dario Ielardi
      Nov 22 '18 at 12:44













    • Yes, looks like it's an issue with the current android firebase dynamic link library.

      – diegoveloper
      Nov 22 '18 at 15:24

















    Unfortunately the bug is still there. When I originally open the app from the link, then every call to retrieveDynamicLink returns the link again.

    – Dario Ielardi
    Nov 22 '18 at 12:44







    Unfortunately the bug is still there. When I originally open the app from the link, then every call to retrieveDynamicLink returns the link again.

    – Dario Ielardi
    Nov 22 '18 at 12:44















    Yes, looks like it's an issue with the current android firebase dynamic link library.

    – diegoveloper
    Nov 22 '18 at 15:24





    Yes, looks like it's an issue with the current android firebase dynamic link library.

    – diegoveloper
    Nov 22 '18 at 15:24













    0














    Not a proper solution, but I noticed that adding a delay between the resume event and actually getting the dynamic link seems to solve the problem.



    Might be useful as a temporary workaround.



    I'm using 500ms.



    Must be some kind of race condition involved.



    The iOS implementation actually suffered from the same (similar) issue before:
    https://medium.com/@diegoveloper/flutter-firebase-dynamic-link-6f1b79278ce0



    Example code exists in the link.



    But basically:



    if (state == AppLifecycleState.resumed) {
    _timerLink = new Timer(const Duration(milliseconds: 500), () {
    _retrieveDynamicLink();
    });
    }


    EDIT: Just noticed that @diegoveloper is the creator of both the article + workaround + the iOS fix and the new Android flutter plugin bug report.
    So, thank you!






    share|improve this answer






























      0














      Not a proper solution, but I noticed that adding a delay between the resume event and actually getting the dynamic link seems to solve the problem.



      Might be useful as a temporary workaround.



      I'm using 500ms.



      Must be some kind of race condition involved.



      The iOS implementation actually suffered from the same (similar) issue before:
      https://medium.com/@diegoveloper/flutter-firebase-dynamic-link-6f1b79278ce0



      Example code exists in the link.



      But basically:



      if (state == AppLifecycleState.resumed) {
      _timerLink = new Timer(const Duration(milliseconds: 500), () {
      _retrieveDynamicLink();
      });
      }


      EDIT: Just noticed that @diegoveloper is the creator of both the article + workaround + the iOS fix and the new Android flutter plugin bug report.
      So, thank you!






      share|improve this answer




























        0












        0








        0







        Not a proper solution, but I noticed that adding a delay between the resume event and actually getting the dynamic link seems to solve the problem.



        Might be useful as a temporary workaround.



        I'm using 500ms.



        Must be some kind of race condition involved.



        The iOS implementation actually suffered from the same (similar) issue before:
        https://medium.com/@diegoveloper/flutter-firebase-dynamic-link-6f1b79278ce0



        Example code exists in the link.



        But basically:



        if (state == AppLifecycleState.resumed) {
        _timerLink = new Timer(const Duration(milliseconds: 500), () {
        _retrieveDynamicLink();
        });
        }


        EDIT: Just noticed that @diegoveloper is the creator of both the article + workaround + the iOS fix and the new Android flutter plugin bug report.
        So, thank you!






        share|improve this answer















        Not a proper solution, but I noticed that adding a delay between the resume event and actually getting the dynamic link seems to solve the problem.



        Might be useful as a temporary workaround.



        I'm using 500ms.



        Must be some kind of race condition involved.



        The iOS implementation actually suffered from the same (similar) issue before:
        https://medium.com/@diegoveloper/flutter-firebase-dynamic-link-6f1b79278ce0



        Example code exists in the link.



        But basically:



        if (state == AppLifecycleState.resumed) {
        _timerLink = new Timer(const Duration(milliseconds: 500), () {
        _retrieveDynamicLink();
        });
        }


        EDIT: Just noticed that @diegoveloper is the creator of both the article + workaround + the iOS fix and the new Android flutter plugin bug report.
        So, thank you!







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Feb 15 at 8:55

























        answered Feb 15 at 8:46









        ninnepinneninnepinne

        315




        315






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53418686%2fdynamic-link-is-not-cleared-after-retrieving%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith