2017-05-15 14 views
0

私はFirebaseデータベースまたはドキュメントタイプDBに新しく、firebasedatabase(https://github.com/step-up-labs/firebase-database-dotnet)を使用しています。問題は、このような文で複数の条件を持つ特定のノードを更新しています。複数の条件で更新Xamarin.Firebase Database

UPDATE account_profile SET homecity = 'NY' WHERE email='[email protected]' AND uid = '0001'; 

著者はこれだけ

//(これはすでにその場所に存在しているものは何でも、データが上書きされます)を直接指定された場所に新しい項目を追加

await firebase 
    .Child("dinosaurs") 
    .Child("t-rex") 
    .PutAsync(new Dinosaur()); 

多くの例を提供していません。私のfirebasedb:

{ 
     "account_profile" : 
    { 
     "-Kk5Xv3E0kqlh6HJSGJ4" : { 
      "email" : "[email protected]", 
      "homecity" : "Iligan, Lanao del Norte", 
      "uid" : "0001" 
     }, 
     "-Kk5dKkgMGkFZ7oJZzf7" : { 
      "email" : "[email protected]", 
      "homecity" : "Mabalacat, Pampanga", 
      "uid" : "0002" 
     }, 
     "-Kk5dTV0oOezkCm8Jb6l" : { 
      "email" : "[email protected]", 
      "homecity" : "Cabuyao, Laguna", 
      "uid" : "0003" 
     }, 
     "-Kk5dtABQUEF4LIuOXvx" : { 
      "email" : "[email protected]", 
      "homecity" : "Davao City, Davao del Sur", 
      "uid" : "0002" 
     }, 
     "-Kk5enNz7MX6V2gnmcza" : { 
      "email" : "[email protected]", 
      "homecity" : "Iligan, Lanao del Norte", 
      "uid" : "0004" 
     }, 
     "-Kk8wzWtzCyAWOxxpyWX" : { 
      "email" : "[email protected]", 
      "homecity" : "Iligan, Lanao del Norte", 
      "uid" : "0005" 
     } 
     } 
    } 

ありがとうと良い日

答えて

0

Update specific fieldsが好きなようですが、この方法はAndroidのlibのネイティブfirebaseに組み込まれていますので、あなたのFirebaseDatabase.net libにこのようなメソッドが見つかりませんでした。

だから、あなたの問題を解決するために、あなたは可能性があります

  1. Xamarin.Firebase.Databaseパッケージをインストールし、このパッケージのUpdateChildrenAsyncまたはUpdateChildren方法を試してみてください。このパッケージは、Xamarin.AndroidのネイティブSDKに似ています。

  2. それとも、あなたが望んでいたリスト項目を修正し、最終的には、そのノード内の古いデータを上書きするFirebaseDatabase.net LIBのPutAsyncメソッドを使用し、そのノード内のすべてのデータをダウンロードして、データ型DinosaurListにそれらを解析。