2016-10-27 7 views
0

Der folgende Code erfolgreich Daten speichert ("test": FIRServerValue.timestamp()) auf meine Firebase Datenbank:Saving FIRServerValue.timestamp() - Hashable Protokollfehler

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 
     } 
    } 

Allerdings mag ich den Zeitstempel sein der Schlüssel und der "Test" soll der Wert sein, z. FIRServerValue.timestamp(): "test"

Als ich sie schalten um auf diese:

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

ich den Fehler:

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

ein paar andere Fragen rund um Hashable Protokolle lesen Nachdem ich bin verwirrt ob das möglich ist?

Antwort

2

FIRServerValue.timestamp() ist ein Befehl, der an Ihren Firebase-Server gesendet wird, der dann einen timeStamp-Wert erstellt und speichert.

Wenn Sie Ihnen einen Null-Wörterbuch erhalten drucken, wie ein Wörterbuch funktioniert, ist, dass Ihr Schlüssel-Wert Paar Wörterbuch keine Nullschlüssel haben kann, weil Sie einen Schlüssel von FIRServerValue.timestamp() in Ihrem Frontend empfangen nicht, es ist immer noch null in den updateValues.

Sie können also keinen leeren Schlüssel definieren

+0

Danke. Ich habe meinen Ansatz geändert und den gespeicherten Zeitstempel von einer früheren Methode abgerufen und dann auf diese Weise verwendet. – RJH