如何在Xamarin.Forms Android中保存Firebase设备令牌

如何在Xamarin.Forms Android中保存Firebase设备令牌,xamarin.forms,dependency-injection,xamarin.android,Xamarin.forms,Dependency Injection,Xamarin.android,这是我的代码: [Service] [IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })] public class MyFirebaseIIDService : FirebaseInstanceIdService { public ISharedFunctions SharedFunctions => DependencyService.Get&

这是我的代码:

    [Service]
    [IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
    public class MyFirebaseIIDService : FirebaseInstanceIdService
    {
        public ISharedFunctions SharedFunctions => DependencyService.Get<ISharedFunctions>();
        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.
            SharedFunctions.SaveFirebaseDeviceToken(token);
            SharedFunctions.GetFirebaseDeviceToken();

        }
    }

如何使用DependencyService保存它,因为我在Android和IOS中使用相同的共享功能来保存和获取令牌?

您不能使用DependencyService将数据从平台项目发送到共享项目

我建议您使用以下方式发送数据:

MessagingCenter.Send<MainPage>(this, "Hi");
使用键获取值:

Preferences.Set("my_key", "my_value");
var myValue = Preferences.Get("my_key", "default_value");

您通常使用DependencyService从共享代码访问平台代码。您不需要它来访问平台项目中的共享代码。@Jacck Hua-MSFT我需要为Android和IOS保存Firebase设备令牌。您可以使用不同的键使用首选项来保存,您有什么问题吗?我是用MessagingCenter做的。打电话给信息中心可以吗;从IOS和Android项目?当然,您可以在IOS和Android项目中使用MessagingCenter.MessagingCenter.Subscribe(此“FirebaseToken”,(参数,列表)=>{DependencyService.Get().SaveFirebaseDeviceToken(列表);});
Preferences.Set("my_key", "my_value");
var myValue = Preferences.Get("my_key", "default_value");