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

Xamarin从Firebase获取姓名和邮箱:姓名无法显示问题排查

问题排查与解决方案

1. 修复ViewModel的属性变更通知

你的WelcomeVM实现了INotifyPropertyChanged接口,但属性赋值时未触发PropertyChanged事件,这会导致UI无法感知属性值变化(Email当前显示正常是因为初始化绑定已完成,但如果FirstName初始值为空,UI就不会更新)。

修改WelcomeVM代码,添加属性变更触发逻辑:

public class WelcomeVM : INotifyPropertyChanged
{
    public WelcomeVM(string email2, string firstName2)
    {
        FirstName = firstName2;
        Email = email2;
    }

    private string firstName;
    public string FirstName
    {
        get { return firstName; }
        set 
        { 
            firstName = value;
            OnPropertyChanged(nameof(FirstName));
        }
    }

    private string email;
    public string Email
    {
        get { return email; }
        set 
        { 
            email = value;
            OnPropertyChanged(nameof(Email));
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

2. 修正FirebaseHelper的冗余逻辑

GetCitizen方法存在两处问题:

  • 参数firstName未被使用,属于冗余参数
  • 重复调用await firebase.Child("Citizen").OnceAsync<Citizen>(),浪费资源

修改GetCitizen方法:

public static async Task<Citizen> GetCitizen(string email)
{
    try
    {
        var allCitizen = await GetAllCitizen();
        return allCitizen.FirstOrDefault(a => a.Email == email);
    }
    catch (Exception e)
    {
        Debug.WriteLine($"Error:{e}");
        return null;
    }
}

3. 确认FirstName的传递逻辑

检查登录后导航到Welcome页面的代码,确保:

  • 调用GetCitizen获取的Citizen对象中FirstName不为空(可通过断点或Debug.WriteLine输出验证)
  • 实例化WelcomeVM时正确传递FirstName值,示例:
// 登录成功后获取用户信息
var user = await FirebaseHelper.GetCitizen(loggedInEmail);
// 导航到Welcome页并绑定ViewModel
await Navigation.PushAsync(new WelcomePage(new WelcomeVM(user.Email, user.FirstName)));

4. 验证Firebase数据结构

确认Firebase的Citizen节点下,每个用户对象确实包含FirstName字段,且字段名大小写与C#模型完全匹配(C#大小写敏感,需保证两者一致)。


内容的提问来源于stack exchange,提问作者Zale Zale

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:30:42