Umer Farooq
Umer Farooq

Reputation: 180

Referral System using firebase

I wants to add referral system in my app.I am using firebase dynamic links.But can't listen when some other user install the app.if some one install the app using dynamic link then sender will get some points.Here is my code of generating short link.

public static Uri buildDeepLink( String product_name, int minVersion) {

    String DEEP_LINK_URL = null;
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    String uid = user.getUid();
    String domain = "example.com";

    JSONObject json_data = new JSONObject();
    JSONObject json_parent = new JSONObject();

    try {
        json_data.put("useremail",product_name);
        json_parent.put("data",json_data);
        DEEP_LINK_URL = "https://example.com/?invitedby=" + product_name;
    } catch (JSONException e) {
        e.printStackTrace();
    }

    DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLink(Uri.parse(DEEP_LINK_URL))
            .setDynamicLinkDomain(domain)
            .setAndroidParameters(new DynamicLink.AndroidParameters.Builder()
                    .setMinimumVersion(minVersion)
                    .build())
            .buildDynamicLink();
    return dynamicLink.getUri();
}

Here is code of listening.But this listener always give null deep link.

 FirebaseDynamicLinks.getInstance()
            .getDynamicLink(getIntent())
            .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
                @Override
                public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                    //Get dynamic link from result (may be null if no link is found)

                    Uri deepLink = null;
                    if (pendingDynamicLinkData != null) {
                        deepLink = pendingDynamicLinkData.getLink();
                    }

                    if (deepLink != null) {
                        String referrerUid = deepLink.getQueryParameter("invitedby");
                        Toast.makeText(getApplicationContext(),referrerUid,Toast.LENGTH_LONG).show();
                        sendReward(referrerUid);
                    }
                    //Here, Handle deep link. For example open the linked content.

                    //Display deep link in UI
                }
            })
            .addOnFailureListener(this, new OnFailureListener() {

                @Override
                public void onFailure(@NonNull Exception e) {
                }
            });

Upvotes: 1

Views: 1775

Answers (0)

Related Questions