2016-12-23 8 views
1

特定のノードでFirebaseの日付を更新したいとします。Firebase Androidのデータを更新する

DB構造:

enter image description here

私はnewValueの値を持つleftSpaceキーを更新したい

private void updateData() { 
database = FirebaseDatabase.getInstance(); 
myref = database.getReference(); 
myref.child("myDb").child("[email protected]").addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 

     dataSnapshot.getRef().child("leftSpace").setValue(newValue); 
     dialog.dismiss(); 

    } 
    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     Log.d("User", databaseError.getMessage()); 
    } 
}); 
} 

として私がしようとしています、 newValueはここで文字列のタイプです。しかし、Firebaseの値は更新されません。

私はここに

dataSnapshot.getRef().child("leftSpace").setValue(765); 

を与えるとそれがうまく更新されます。しかし、私はFirebaseの文字列形式で更新したいと思っています。

すべての文字列型のFirebaseにデータを保存しました。 (私のパターンクラスにはすべてのタイプ文字列が含まれています)

newvalueここで文字列を更新しないのはなぜですか? @Rjz Satvara

次の方法により推奨

編集1は、それはすでに1を更新していないmyDBenter image description here

としての下に新しいノードを追加しています。あなたはそれを使用することができ、特定の値を更新する Firebase

答えて

4

...

 try { 
      ref.child("myDb").child("[email protected]").child("leftSpace").setValue("YourDateHere"); 
     } catch (Exception e) { 
       e.printStackTrace(); 
     } 
+0

のように、同じ子に新しい値を割り当てることができます。それは新しいノードを作っています。問題の編集1を参照してください。 – user6750923

+0

まだ動作しません。 'myDb'ノードの下に' leftSpace'という名前の新しいノードを追加しています。 ( 'myDb'は私のDB名です)。私がどこにいるか参照してください。私は 'myref.child( "CarParki")として、コードを実行します。子( "awais @ gmailcom")。addListenerForSingleValueEvent(新ValueEventListener(){@Override 公共ボイドOnDataChangeの(DataSnapshot dataSnapshot){ 試し{ myref.child ( "leftSpace"); setValue( "YourDateHere"); } catch(Exception e){ e.printStackTrace(); } ' – user6750923

+0

上記のコードを追加すると問題が解決します –

1

あなたが働いていない

Firebase firebase = new Firebase("your database link/myDb"); 
    firebase.child("[email protected]").child("leftSpace").setValue("newValue"); 
関連する問題