2016-11-06 3 views
4

스냅 샷에서 필드를 업데이트하려고하는데 스냅 샷이 null이 아니고 올바르게 인쇄되었지만 ref.update()을 사용할 수 없습니다. 나는 this answer을 따라 가려고했다. 내가 여기서 무엇을 놓치고 있니?snapshot.ref가 함수가 아닙니다.

내 코드 :

ref.limitToLast(1).on('child_added', function(snapshot) { 
    console.log(snapshot.val()); 
    var serial_number = String(snapshot.child("serial").val()); // 
    console.log(serial_number); 
    snapshot.ref().update({ signed: 'true' }); 
// ... 
} 

출력 :

output

+2

Firebase v3에서 'ref'는 메소드가 아니라 속성입니다. – cartant

+0

@cartant, 그런 간단한 설명에 감사드립니다. 당신은 질문에 대답 할 수 있고 원한다면 받아 들일 것입니다. –

답변

12

문제는 당신이 참조하는 대답은 중포 기지의 이전 버전을 사용하고 API 동안 현재 매우 가까운 것입니다 버전에는 몇 가지 차이점이 있습니다.

// Reference 
var key = ref.key(); 
var rootRef = ref.root(); 
var parentRef = ref.parent(); 

// Query 
var queryRef = query.ref(); 

// DataSnapshot 
ref.on("value", function(snapshot) { 
    var dataRef = snapshot.ref(); 
    var dataKey = snapshot.key(); 
}); 
하기 전에 :

특히 3

, many no-argument getters have been changed to read-only properties 중포 기지 버전 2와 버전에서 업그레이드 할 때 변경 사항을 설명하고 수행 할 필요가 무엇 guide있다

이후

// Reference 
var key = ref.key; 
var rootRef = ref.root; 
var parentRef = ref.parent; 

// Query 
var queryRef = query.ref; 

// DataSnapshot 
ref.on("value", function(snapshot) { 
    var dataRef = snapshot.ref; 
    var dataKey = snapshot.key; 
}); 
+0

cartant는 이미 해답을 작성했지만 답변이 옳기 때문에 나는 upvoted하고 받아 들였습니다. –

+0

@ Mr.Phil 예, 제 의견이었습니다. 나는 지난 밤 늦게 코멘트를 썼지 만, 오늘 아침까지 형식이 더 좋은 답변은 입력하지 않았다. – cartant