2016-10-27 1 views
0
다음 코드는 성공적으로 데이터를 저장

("테스트": FIRServerValue.timestamp()) 내 중포 기지 데이터베이스 그러나저장 FIRServerValue.timestamp() - 해쉬 프로토콜 오류

let updateData = [ "[agent]:\(self.messageText)": (FIRServerValue.timestamp()) ] as [String : Any] 

    let update = self.dbConnector.child("messages/\(key)") 
    update.updateChildValues(updateData) { (error, dbRef) in 
     if (error == nil) { 
      // ok 
     } else { 
      // failed 
     } 
    } 

, 나는 타임 스탬프가되고 싶어 키와 "테스트"는 값이됩니다. FIRServerValue.timestamp() :이 주위를 전환 "테스트"

:

let updateData = [(FIRServerValue.timestamp()) : "test"] as [Any : String] 

나는 오류 얻을 : 해쉬 프로토콜 주위에 다른 몇 가지 질문을 읽으면서

Type 'Any' does not conform to protocol 'Hashable' 

를 I 이것이 가능한지 혼란 스럽습니까?

답변

2

FIRServerValue.timestamp()은 Firebase 서버에 보내는 명령으로 timeStamp 값을 만든 다음 저장합니다. 당신이 널 사전을 얻을 인쇄 할 경우

은 사전 작동 방법, 당신은 당신의 프런트 엔드에서 FIRServerValue.timestamp()의 키를받을 해달라고 때문에 사전의 키 값 쌍, 널 키를 가질 수 있다는 것입니다 updateValues에서 여전히 null입니다.

빈 키를 정의 할 수 없습니다.

+0

감사합니다. 내 접근 방식을 변경하고 이전의 메소드에서 저장된 타임 스탬프를 가져 와서 그런 식으로 사용했습니다. – RJH