嘿,美好的一天我是Firebase数据库或文档类型数据库的新手,我使用的是firebasedatabase(https://github.com/step-up-labs/firebase-database-dotnet)我的问题是使用类似于此的语句更新具有多个条件的特定节点。
UPDATE account_profile SET homecity = 'NY' WHERE email='xjake@yahoo.com' AND uid = '0001';
作者没有提供太多这样的例子
//将新项目直接添加到指定位置(这将覆盖该位置已存在的任何数据)
await firebase
.Child("dinosaurs")
.Child("t-rex")
.PutAsync(new Dinosaur());
我的firebasedb:
{
"account_profile" :
{
"-Kk5Xv3E0kqlh6HJSGJ4" : {
"email" : "xjake@yahoo.com",
"homecity" : "Iligan, Lanao del Norte",
"uid" : "0001"
},
"-Kk5dKkgMGkFZ7oJZzf7" : {
"email" : "qjake@yahoo.com",
"homecity" : "Mabalacat, Pampanga",
"uid" : "0002"
},
"-Kk5dTV0oOezkCm8Jb6l" : {
"email" : "ljake@yahoo.com",
"homecity" : "Cabuyao, Laguna",
"uid" : "0003"
},
"-Kk5dtABQUEF4LIuOXvx" : {
"email" : "njake@yahoo.com",
"homecity" : "Davao City, Davao del Sur",
"uid" : "0002"
},
"-Kk5enNz7MX6V2gnmcza" : {
"email" : "bjake@yahoo.com",
"homecity" : "Iligan, Lanao del Norte",
"uid" : "0004"
},
"-Kk8wzWtzCyAWOxxpyWX" : {
"email" : "jake@yahoo.com",
"homecity" : "Iligan, Lanao del Norte",
"uid" : "0005"
}
}
}
谢谢和美好的一天
答案 0 :(得分:0)
似乎你喜欢的是Update specific fields,但是这个方法是在Android lib的原生firebase中构建的,我在FirebaseDatabase.net lib中找不到这样的方法。
因此,要解决您的问题,您可以:
安装Xamarin.Firebase.Database软件包并尝试此软件包的UpdateChildrenAsync
或UpdateChildren
方法。此软件包类似于Xamarin.Android的原生SDK。
或者,下载该节点中的所有数据并将其解析为数据类型List
的{{1}},然后修改所需的列表项,最后使用{{1} } Dinosaur
lib的方法覆盖该节点中的旧数据。