Here it is some code I have used with Firebase Dynamic Links.
private void createFirebaseLink(Uri linkUri){
FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(linkUri)
.buildShortDynamicLink()
.addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() {
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
if (task.isSuccessful()) {
// SHARE BY LOCAL METHODS
} else {
Toast.makeText(getApplicationContext(), R.string.share_error, Toast.LENGTH_LONG).show();
Log.e("FIREBASE_SHORT_LINK", task.getException().getLocalizedMessage());
}
}
});
}
private Uri createDynamicUri(Uri uri){
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(uri)
.setDynamicLinkDomain(getString(R.string.firebase_link_domain))
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
.buildDynamicLink();
return dynamicLink.getUri();
}
private Uri createShareUri(String id) {
Uri.Builder builder = new Uri.Builder();
builder.scheme(getString(R.string.config_scheme))
.authority(getString(R.string.config_host))
//PATH IN THE APP TO ALLOW DIFFERENT ACTIONS
.appendPath(getString(R.string.config_path))
// HERE YOU PUT WHATEVER YOU WANT TO MANAGE IN THE APP,
// REFERRAL CODE FOR EXAMPLE.
.appendQueryParameter("KEY", "VALUE");
return builder.build();
}
You can use them like:
Uri shareItem = createShareUri("Some value");
Uri dynamicLink = createDynamicLink(shareItem);
createFirebaseLink(dynamicLink);
You can get more info in Firebase docs.