使用多个条件更新Xamarin.Firebase数据库

时间:2017-05-15 13:38:01

标签: firebase xamarin firebase-realtime-database xamarin.android

嘿,美好的一天我是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"
        }
      }
    }

谢谢和美好的一天

1 个答案:

答案 0 :(得分:0)

似乎你喜欢的是Update specific fields,但是这个方法是在Android lib的原生firebase中构建的,我在FirebaseDatabase.net lib中找不到这样的方法。

因此,要解决您的问题,您可以:

  1. 安装Xamarin.Firebase.Database软件包并尝试此软件包的UpdateChildrenAsyncUpdateChildren方法。此软件包类似于Xamarin.Android的原生SDK。

  2. 或者,下载该节点中的所有数据并将其解析为数据类型List的{​​{1}},然后修改所需的列表项,最后使用{{1} } Dinosaur lib的方法覆盖该节点中的旧数据。