You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI集成FirebaseAuthProvider遇抽象类型实例化错误求助

解决.NET MAUI中FirebaseAuthProvider无法实例化的问题

问题原因

你遇到的CS0144错误是因为当前适配.NET MAUI的Firebase身份认证库中,FirebaseAuthProvider已被定义为抽象类型,不再允许直接通过new关键字创建实例——这和旧版Xamarin中使用的第三方库(如FirebaseAuth.NET)的实现逻辑不同。

解决方案

改用官方Firebase SDK的标准方式获取认证实例,步骤如下:

  1. 确保安装正确的NuGet包
    安装适配MAUI的官方Firebase Auth包:Xamarin.Firebase.Auth(或对应平台的细分包,如Xamarin.Firebase.Auth.Android、Xamarin.Firebase.Auth.iOS)。

  2. 修改代码逻辑
    先初始化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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:12:22