androidfirebase-dynamic-linksfirebase-invites

onSuccess method not calling in firebase in android


I am trying to creating a dynamic link and when I am trying to debug the code it's calling the callback method addOnSuccessListener but after that it's not calling or we say it's skipping the method onSuccess() and I am not getting any clue why it's happening.

private void firebaseInvite() {
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        String uid = user.getUid();
        String url = "https://larky.funswitch.io/?invitedby=" + uid;
        FirebaseDynamicLinks.getInstance().createDynamicLink()
                .setLink(Uri.parse(url))
                .setDynamicLinkDomain("https://fmu3k.app.goo.gl")
                .setAndroidParameters(
                        new DynamicLink.AndroidParameters.Builder("io.funswitch.funrooster")
                                .setMinimumVersion(5)
                                .build())
                .buildShortDynamicLink()
                .addOnSuccessListener(shortDynamicLink -> {

After this my debugger skip this code and it is not calling

 mInvitationUrl = shortDynamicLink.getShortLink();
                    mDatabase.child("Name").addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            String referrerName = dataSnapshot.getValue(String.class);
                            String subject = String.format("%s wants you to play MyExampleGame!", referrerName);
                            String invitationLink = mInvitationUrl.toString();
                            String msg = "Let's play MyExampleGame together! Use my referrer link: "
                                    + invitationLink;
                            String msgHtml = String.format("<p>Let's play MyExampleGame together! Use my "
                                    + "<a href=\"%s\">referrer link</a>!</p>", invitationLink);

                            Intent intent = new Intent(Intent.ACTION_SENDTO);
                            intent.setData(Uri.parse("mailto:")); // only email apps should handle this
                            intent.putExtra(Intent.EXTRA_SUBJECT, subject);
                            intent.putExtra(Intent.EXTRA_TEXT, msg);
                            intent.putExtra(Intent.EXTRA_HTML_TEXT, msgHtml);
                            if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
                                startActivity(intent);
                            }
                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) {

                        }
                    });

                });
    }

Please help me out..


Solution

  • I get it solved it is very basic silly mistake I am doing actually link is not parsing in the code above because I have mentioned https two times in dynamic link and dynamic link domain after removing https from dynamic link domain I get it work.

    private void firebaseInvite() {
            FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
            String uid = user.getUid();
            String url = "https://larky.funswitch.io/?invitedby=" + uid;
            FirebaseDynamicLinks.getInstance().createDynamicLink()
                    .setLink(Uri.parse(url))
                    .setDynamicLinkDomain("fmu3k.app.goo.gl")
                    .setAndroidParameters(
                            new DynamicLink.AndroidParameters.Builder("io.funswitch.funrooster")
                                    .setMinimumVersion(5)
                                    .build())
                    .buildShortDynamicLink()
                    .addOnSuccessListener(shortDynamicLink -> {
    
     mInvitationUrl = shortDynamicLink.getShortLink();
                        mDatabase.child("Name").addListenerForSingleValueEvent(new ValueEventListener() {
                            @Override
                            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                                String referrerName = dataSnapshot.getValue(String.class);
                                String subject = String.format("%s wants you to play MyExampleGame!", referrerName);
                                String invitationLink = mInvitationUrl.toString();
                                String msg = "Let's play MyExampleGame together! Use my referrer link: "
                                        + invitationLink;
                                String msgHtml = String.format("<p>Let's play MyExampleGame together! Use my "
                                        + "<a href=\"%s\">referrer link</a>!</p>", invitationLink);
    
                                Intent intent = new Intent(Intent.ACTION_SENDTO);
                                intent.setData(Uri.parse("mailto:")); // only email apps should handle this
                                intent.putExtra(Intent.EXTRA_SUBJECT, subject);
                                intent.putExtra(Intent.EXTRA_TEXT, msg);
                                intent.putExtra(Intent.EXTRA_HTML_TEXT, msgHtml);
                                if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
                                    startActivity(intent);
                                }
                            }
    
                            @Override
                            public void onCancelled(@NonNull DatabaseError databaseError) {
    
                            }
                        });
    
                    });
        }