c# - 警告 CS0618 : 'FirebaseInstanceIdService' is obsolete: 'This class is obsoleted in this android platform

标签 c# firebase xamarin.android firebase-cloud-messaging

如果我使用教程中提供的代码,我会收到以下警告:

Warning CS0618: 'FirebaseInstanceIdService' is obsolete: 'This class is obsoleted in this android platform'

Warning CS0672: Member 'MyFirebaseIIDService.OnTokenRefresh()' overrides obsolete member 'FirebaseInstanceIdService.OnTokenRefresh()'. Add the Obsolete attribute to 'MyFirebaseIIDService.OnTokenRefresh()'.

Warning CS0618: 'FirebaseInstanceId.Token' is obsolete: 'deprecated'

我不明白我是否可以像现在这样使用这段代码,或者是否需要更改某些内容才能使代码在当前的 Android 设备上运行。

是否需要改代码?

我的 AndroidManifest.xml 设置:最低 Android 版本 = Android 5.0(API 级别 21),目标 Android 版本 = Android 9.0(API 级别 28)

MyFirebaseIIDService.cs:

using System;
using Android.App;
using Firebase.Iid;
using Android.Util;

namespace Androidproject
{
[Service]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyFirebaseIIDService : FirebaseInstanceIdService
{
    const string TAG = "MyFirebaseIIDService";
    public override void OnTokenRefresh()
    {
        var refreshedToken = FirebaseInstanceId.Instance.Token;
        Log.Debug(TAG, "Refreshed token: " + refreshedToken);
        SendRegistrationToServer(refreshedToken);
    }
    void SendRegistrationToServer(string token)
    {
        // Add custom implementation, as needed.
    }
}
}

您可以在本教程中找到代码示例:https://learn.microsoft.com/en-us/xamarin/android/data-cloud/google-messaging/remote-notifications-with-fcm?tabs=windows

最佳答案

当您更新到 Xamarin.Firebase.Messaging 版本 71.1740.0 时,您会开始收到有关由于 Google 库中的更改而弃用的方法的编译器警告。您不再需要 FirebaseInstanceIdService 所以继续删除它。现在,您可以从 FirebaseMessagingService.OnNewToken 方法中获取设备 token 。

关于c# - 警告 CS0618 : 'FirebaseInstanceIdService' is obsolete: 'This class is obsoleted in this android platform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57114095/

相关文章:

c# - OSX Yosemite 10.10 上 Xamarin 中的 PCL 库

firebase - 如何使用 Firebase REST API 创建用户?

c# - 如何在 Android 中重用现有的 C# 代码?

c# - 在 asp.net 中通过请求生命周期保存值(value)

c# - 语言间的方法差异(Python->C#)

android - Firebase 安卓订购

node.js - 如何通过admin SDK注销用户? (使 auth === null)

xamarin - 使用 Visual Studio 2015 - 社区版 Xamarin 运行什么模拟器>

c# - Private Set 属性不保留其新值

c# - 使用 XmlNamespaceManager 将命名空间添加到 XmlDocument