.NET MAUI集成FirebaseAuthProvider遇抽象类型实例化错误求助
解决.NET MAUI中FirebaseAuthProvider无法实例化的问题
问题原因
你遇到的CS0144错误是因为当前适配.NET MAUI的Firebase身份认证库中,FirebaseAuthProvider已被定义为抽象类型,不再允许直接通过new关键字创建实例——这和旧版Xamarin中使用的第三方库(如FirebaseAuth.NET)的实现逻辑不同。
解决方案
改用官方Firebase SDK的标准方式获取认证实例,步骤如下:
确保安装正确的NuGet包
安装适配MAUI的官方Firebase Auth包:Xamarin.Firebase.Auth(或对应平台的细分包,如Xamarin.Firebase.Auth.Android、Xamarin.Firebase.Auth.iOS)。修改代码逻辑
先初始化FirebaseApp,再通过静态方法获取FirebaseAuth实例,替代直接实例化FirebaseAuthProvider的写法:
private async void LoginBtnClicked(object obj) { // 配置Firebase选项,替换为你的项目WebApiKey和其他必要参数 var firebaseOptions = new FirebaseOptions.Builder() .SetApiKey(WebApiKey) .SetApplicationId("你的Firebase应用ID") // 可选,部分平台需要 .Build(); // 初始化或获取已存在的FirebaseApp实例 var firebaseApp = FirebaseApp.DefaultInstance ?? FirebaseApp.InitializeApp(firebaseOptions); // 获取FirebaseAuth实例 var auth = FirebaseAuth.GetInstance(firebaseApp); // 示例:添加邮箱密码登录逻辑(根据你的需求调整) // try // { // var userCredential = await auth.SignInWithEmailAndPasswordAsync("user@example.com", "password123"); // // 登录成功后的逻辑 // } // catch (FirebaseAuthException ex) // { // // 处理登录错误 // } await Shell.Current.GoToAsync("///MainPage"); }
补充说明
如果之前尝试的第三方NuGet包未适配MAUI,建议切换到官方SDK以获得更好的兼容性和后续更新支持。
内容的提问来源于stack exchange,提问作者Erique Gilliam
相关产品推荐
相关产品推荐

