如何在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
相关产品推荐
相关产品推荐

