2017-04-10 4 views
1

이것은 내가 업데이트 할 데이터는 다음과 같습니다Firebase에서 항목을 업데이트하는 방법은 무엇입니까?

"users": [ 
    "-KTYWvZG4Qn9ZYTc47O6": { 
     "name": "name" 
     "email": "email" 
    } 
] 

내 코드 :

private void update1(String s, String name,String email) { 

    String key = mFirebaseDatabase.child("users").push().getKey(); 

    user1 user = new users1(name, email); 
    Map<String, Object> postValues = user.toMap(); 

    Map<String, Object> childUpdates = new HashMap<>(); 
    childUpdates.put("https://stackoverflow.com/users/" + key, postValues); 

    mFirebaseDatabase.updateChildren(childUpdates); 
} 

이 왜 새 노드를 만들 수 있습니까? 그냥 제거

mFirebaseDatabase.child("users").push().getKey(); 

이것은 users 노드를 기존 업데이트됩니다 : 당신은 push를 사용하여 새 노드를 만드는

"users": [ 
    "-KTYWvZG4Qn9ZYTc47O6" : { 
     "name" : "name" 
     "email" : "email" 
    } 
] 
"users": [ 
    "-KeZvOQ8HYrNXvuPBe8z" : { 
     "name" : "name2" 
     "email" : "email2" 
    } 
] 
+1

'mFirebaseDatabase.child ("사용자")를 사용하여

datasnapshot.getkey() 

업데이트를 사용 키 수) (추진하는 getKey();..'새 노드를 생성 (새 키로) - 그 밖의 무엇을 생각 했습니까? – UnholySheep

+0

도움이됩니다. http://stackoverflow.com/questions/42559444/firebase-update-is-making-newone-with-the-same-id-except-last-character/43034019#43034019 –

+0

당신은 무엇입니까? '사용자'에 새 사용자를 추가하거나 기존 사용자를 업데이트 하시겠습니까? –

답변

1

이 코드 를 사용하여 예를 에 이메일과 같은 고유 한 값으로 노드를 쿼리해야 youReference = database.getReference ("masjeds");

ValueEventListener listener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) { 
       masjedKey = dataSnapshot1.getKey(); // This is a member variable 
       masjed = dataSnapshot1.getValue(Masjed.class); // This is a member variable 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
}; 
masjeds.orderByChild("id").equalTo(masjed.getId()).addValueEventListener(listener); 

는이

youReference.child(masjedKey).child("name").setValue("John") 
0

은 메서드 ("자동 생성 된 하위 위치에 대한 참조를 만들") :

mFirebaseDatabase.child("users").getKey(); 
+0

같은 문제! – Ahmed

관련 문제