Xamarin中FirebaseInstallations的AddOnSuccessListener需传入什么参数?
解决FirebaseInstallations的AddOnSuccessListener参数问题
你可以直接传入
this(当前的MainActivity实例),但需要让你的MainActivity实现**IOnSuccessListener<string>**接口——因为FirebaseInstallations.GetId()返回的是针对字符串类型结果的任务,对应的监听器需要处理字符串类型的返回值。示例代码改造步骤:
- 让MainActivity实现对应接口:
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity, Android.Gms.Tasks.IOnSuccessListener<string> { // 保留原有代码... public void OnSuccess(string result) { // 在这里处理获取到的Firebase安装ID,替换成你原处理FirebaseInstanceId返回值的逻辑 } } - 调用GetId()时传入
this:if (DeviceInstallationService.NotificationsSupported) { FirebaseInstallations.GetInstance(Firebase.FirebaseApp.Instance) .GetId() .AddOnSuccessListener(this); }
- 让MainActivity实现对应接口:
另外,推荐使用C#异步/await语法替代监听器,代码更简洁易读:
if (DeviceInstallationService.NotificationsSupported) { var installationId = await FirebaseInstallations.GetInstance(Firebase.FirebaseApp.Instance) .GetIdAsync(); // 处理获取到的installationId }
内容的提问来源于stack exchange,提问作者Anna Melashkina
相关产品推荐
相关产品推荐

