How to process firebase short dynamic link Onsuccess result

Tol*_*ope 4 c# android xamarin.android firebase xamarin

I have this method in Xamarin Android that creates firebase shortdynamic link:

private void GetDynamicLink()
        {

            string uid = "My_Id";
            string link = "https://ledrop.com/?invitedby=" + uid;
        var task =    FirebaseDynamicLinks.Instance.CreateDynamicLink()
        .SetLink(Android.Net.Uri.Parse(link))
        .SetDynamicLinkDomain("ledrop.page.link")
        .SetAndroidParameters(
                new DynamicLink.AndroidParameters.Builder(PackageName)
                        .SetMinimumVersion(125)
                        .Build()).BuildShortDynamicLink().AddOnSuccessListener(this, new dynamicLinkListener());


        }
Run Code Online (Sandbox Code Playgroud)

I Attached an onsuccess listener as shown above, then i process the listener like this:

internal class dynamicLinkListener : Java.Lang.Object, IOnSuccessListener, IOnFailureListener
        {


            public void OnFailure(Java.Lang.Exception e)
            {
                Console.WriteLine(e.Message);
            }

            void IOnSuccessListener.OnSuccess(Java.Lang.Object result)
            {

                var sDynamicLink = result as IShortDynamicLink;

            }

        }
Run Code Online (Sandbox Code Playgroud)

But the sDynamicLink variable returns null, how do i get the shortLink from the result?

小智 6

像这样使用 JavaCast

class OnSuccessListner : Java.Lang.Object, IOnSuccessListener
{
    TaskCompletionSource<string> _tcs;

    public OnSuccessListner(TaskCompletionSource<string> tcs)
    {
        _tcs = tcs;
    }

    void IOnSuccessListener.OnSuccess(Java.Lang.Object result)
    {
        var link = result.JavaCast<IShortDynamicLink>();
        _tcs.TrySetResult(link.ShortLink.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)