代码之家  ›  专栏  ›  技术社区  ›  Rizan Zaky

FirebaseInstanceId。例子在使用Xamarin.Firebase的Xamarin.Android中,令牌被弃用并返回null。消息传递

  •  0
  • Rizan Zaky  · 技术社区  · 5 年前

    我正在使用 Xamarin.Firebase.Messaging v71.1740 nuget插件,

    我正在尝试获取已在中生成的FCM令牌 FirebaseMessagingService 扩展类方法,

    public override void OnNewToken(string p0)
    {
        base.OnNewToken(p0);
    
        // use token
    }
    

    使用,

    var token = FirebaseInstanceId.Instance.Token;
    

    但这又回来了 null 它也被列为过时。

    1 回复  |  直到 5 年前
        1
  •  19
  •   Rizan Zaky    4 年前

    更新

    GetInstanceId<InstanceIdResult>() 也是 deprecated 赞成 FirebaseMessaging.getToken() 对于 FCM令牌 FirebaseInstallations.getId() 对于 实例标识符 ,

    enter image description here

    所以, FirebaseMessaging.getToken() 现在推荐的方法是 FCM令牌 ,

    这就是你如何轻松地消费它,

    var token = await FirebaseMessaging.Instance.GetToken();
    

    FirebaseInstallations.getId() 现在推荐的方法是 实例标识符 ,

    这就是你如何轻松地消费它,

    var id = await FirebaseInstallations.Instance.GetId();
    

    在这里, var 属于 Type Java.Lang.Object .做, token.ToString() 为了得到 string 价值。

    原件

    FirebaseInstanceId.Instance.Token deprecated 赞成 GetInstanceId<InstanceIdResult>() ,

    enter image description here

    所以, GetInstanceId<InstanceIdResult>() 是推荐的方式,

    这就是你如何消费它,

    var instanceIdResult = await FirebaseInstanceId.Instance.GetInstanceId().AsAsync<IInstanceIdResult>();
    var token = instanceIdResult.Token;
    
        2
  •  4
  •   jklemmack    4 年前

    哦,看, FirebaseInstanceId.Instance deprecated too .

    看起来更新的方式是:

    var token = await FirebaseMessaging.Instance.GetToken();
    
        3
  •  1
  •   Juan Redondo    5 年前

    如果你得到空 FirebaseInstanceId.Instance ,通话时

    var instanceIdResult = await FirebaseInstanceId.Instance.GetInstanceId().AsAsync<IInstanceIdResult>();
    

    我必须更新

    Xamarin.Firebase.Messaging to version 71.1740.1
    

    并将其添加到您的项目中。android.csproj

    <PropertyGroup> 
        <AndroidManifestMerger>manifestmerger.jar</AndroidManifestMerger> 
    </PropertyGroup>
    

    (more info)

    这对我来说很有效(不确定两者是否都是强制性的)

    推荐文章