2016-11-27 3 views
0

새로운 정보를 푸시하고 데이터베이스에서 호출 할 수 있었지만 지금은 며칠 동안 찾고 있었지만 아무것도 찾을 수 없었습니다.동시에 Firebase 웹 앱에서 새로운 Firebase 하위 노드를 업데이트하고 추가하십시오.

이미 값이있는 노드를 업데이트하고 그렇지 않은 경우 새 노드를 추가 할 수 있기를 기대합니다. 누구든지 이걸 도와 줄 수 있어요. Firebase를 처음 사용합니다.

감사

코드 :

users 
    uid1 
     userName: "Frank van Puffelen" 

가의 특정 사용자를 추가하려면 :

의견에서
function userProfileUpdate(users) { 

       newUsername = document.getElementById("newUsername"); 

       // Profile Update. 
       var user = { 
       username : newUsername.value 
       }; 

       return firebase.database().ref().update(user); 
      }; 
+0

데이터를 추가하는 것은'ref.setValue ({name : "user3411711"})'처럼 간단해야합니다. 이미 무언가를 시도한 것 같습니다. [갇혀있는 곳을 재현하는 최소한의 코드] (http://stackoverflow.com/help/mcve)를 공유하면 도움이 될 것입니다. –

+0

예 여러 방법을 시도했습니다. – user3411711

+0

감사합니다. 이 코드의 문제점은 무엇입니까? 실행됩니까? 디버거에서 단계별로 수행 했습니까? 자바 스크립트 콘솔에 오류가 있습니까? –

답변

1

는이 같은 데이터 구조에 사용자 정보를 저장하려는 것으로 보인다 이 구조체라면 다음과 같이 할 수 있습니다.

function userProfileUpdate(users) { 
    var user = firebase.auth().currentUser; 
    var root = firebase.database().ref(); 

    newUsername = document.getElementById("newUsername"); 

    var user = { 
     username : newUsername.value 
    }; 

    return root.child('users').child(user.uid).set(user); 
}; 

업데이트 update a specific property of a specific user으로

:

Map<String, Object> updates = new HashMap<String,Object>(); 
updates.put("username", newUsername.value); 
root.child('users').child(user.uid).updateChildren(user); 

또는 대안 :

root.child('users').child(user.uid).child("username").setValue(newUsername.value); 

모두가 자동으로 작성 아직 존재하지 않는 경우 위치를.

+0

예. 구조가 정확합니다. 이 오류가 발생합니다 : Firebase.child failed : 첫 번째 인수는 잘못된 경로입니다 : 업데이트 된 코드로 "정의되지 않음". – user3411711

+0

이 문제는 중요하지 않지만 내 이름은 userName이 아니라는 것을 알 수 있습니다. – user3411711

+0

대개 'user.uid'는 시나리오에서 정의되지 않았습니다. 디버거에서 코드를 단계별로 실행하고 'user'에 값이 있는지 확인하고,'user.uid '가 무엇인지 확인하십시오. 스택 오버플로는 원격으로 디버깅하는 비효율적 인 메커니즘입니다. –

1

프랭크 코드는 전체 키를 빼앗아 갔어하지만 프랭크는 당신이 올바른 방향으로 날 밀어이

var user = firebase.auth().currentUser; 
     var root = firebase.database().ref(); 

     newUsername = document.getElementById("newUsername"); 

     firebase.database().ref('users/' + user.uid).update({ 
      username: newUsername.value 
      }); 

감사로 파악했다.

관련 문제