2017-03-29 10 views
0

그래서이 작업을 수행하는 데 어려움을 겪었습니다. 필자는 기본적으로 채팅 응용 프로그램을 만들고 새 메시지를 확인하기 위해 childAdded 관측기에 의존합니다. 내 IOS 응용 프로그램에서 다음을 사용하고 있습니다.firebase childbase가 firebase admin (nodejs)에서 푸시했을 때 관찰자가 실행되지 않았습니다.

//Get ref to users chat node 
let messagesRef = dbRef.child("chats").child(self.userId) 
//Only get most recent message 

let messageQuery = messagesRef.queryOrdered(byChild: "messageTimeStamp").queryLimited(toLast: 1) 

// Listen for new messages (last 1) being written to the Firebase DB 
messageQuery.observe(.childAdded, with: { (snapshot) -> Void in... 

사용자가/chat/uid에 메시지를 추가하면 잘 작동합니다. 그러나 firebase admin (노드 js)에서 자식 노드를 추가하면 관찰자는 절대로 실행되지 않습니다.

ref.child('chats/'+ uid).push(message); 

메시지

제대로 트리에 추가되어 있지만 관찰자 적 트리거되지 않습니다 : I는 서버 측에서 메시지를 추가 해요 방법이있다

.

시도해 보시라. 아무런 차이가없는 수십 번의 조정을 해보니, 나는 뭔가 간단한 것을 놓치고 있다고 확신한다. 도움!

답변

0

질문을 게시 한 직후에 해결되었습니다 ... 전형적! .set을 추가하면 문서에 동일한 내용이 명시되어 있어도 옵서버가 작동하는 것처럼 보입니다.

이 작동 :

ref.child('chats/'+ uid).push().set(message);