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

如何在Xamarin中移除Firebase实时数据库的唯一ID

如何在Firebase实时数据库中避免生成自动唯一键(Xamarin)

你当前使用的PostAsync方法是Firebase默认生成自动唯一键的API,要移除自动键,改用PutAsync方法并指定自定义键即可——比如用你StudentModel里的Id作为节点的键。

修改后的保存代码

把原来的PostAsync替换为PutAsync,并在Child路径中明确指定要使用的键值(这里用学生的Id):

using Firebase.Database;
using Firebase.Database.Query;
using Newtonsoft.Json;
using System.Threading.Tasks;

namespace RealTimeIot
{
    internal class StudentRepository
    {
        FirebaseClient firebaseClient = new FirebaseClient("https://student-part-ca785-default-rtdb.asia-southeast1.firebasedatabase.app/");

        public async Task<bool> Save(StudentModel student)
        {
            // 用学生的Id作为自定义键,替换自动生成的唯一键
            await firebaseClient.Child("User")
                               .Child(student.Id.ToString())
                               .PutAsync(JsonConvert.SerializeObject(student));
            
            // 无需判断data.Key,只要无异常抛出即可认为保存成功
            return true;
        }
    }
}

关键说明

  • PutAsync方法会直接将数据写入你指定的节点路径:如果该路径下已有数据,会覆盖原有内容;如果不存在,则创建新节点。
  • 务必保证StudentModel.Id是全局唯一的,避免不同学生的数据被互相覆盖。
  • 和PostAsync不同,PutAsync不需要依赖返回的data.Key判断成功,只要方法执行无异常,就说明数据已正常写入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:16:15