2016-11-17 6 views
0

Ich habe ein Problem beim Abrufen eines Objekts mit einer Spalte mit mehreren [String: Int] -Werten. In meinem Fall speichere ich eine Nachricht, die Benutzer mögen oder nicht mögen. Das Nachrichtenobjekt hat die Spalte likes, die eine Dict[String, Int] enthält, die den userID und ähnlichen Wert (+ 1/-1) speichert. Im Backend sieht es so aus:Parse & Swift: Spalte mit mehreren Schlüsseln

"likes": { 
    "123": 1, 
    "456": -1, 
    "789": 1 
}, 

ich in der Lage war, vor die Ergebnisse bis zu einer Woche erhalten mit:

query.whereKey("likes." + userID, equalTo: 1) 

Aber leider die Fehlermeldung erhalte ich:

[Fehler]: ungültiger Schlüsselname: likes.123 (Code: 105, Version: 1.12.0)

obwohl es vor ein paar Tagen funktionierte.

okay, vielleicht war ich nicht klar genug. Ich versuche alle Nachrichten zu erhalten, die einem Benutzer zuvor gefallen haben. Daher möchte ich alle Nachrichten auswählen, die die Benutzer-ID in der Spalte "Likes" enthalten.

Die Klasse namens "Nachricht" hat ein Attribut "Likes", das wiederum ein Dict [UserID, Value] enthält. Der komplette Abfrage sieht wie folgt aus:

let query = Message.query()!

query.whereKey("likes." + user, equalTo: 1)

und das Objekt im Backend sieht wie folgt aus:

{"_id": "123456789", 
"message": "Test", 
"likes": { "123": 1, "456": -1, "789": 1 } 
} 

ich Sie hoffen kann,

Antwort

0

:) helfen Sie versuchen, den Wert für likes. zu erhalten, aber Ihr Schlüssel ist likes, entfernen Sie Punkt von Ihrem Code.

Ihre modifizierte Code:

query.whereKey("likes", equalTo: 1) 

Thanks :)

+0

Vielen Dank für Ihre Antwort, aber wenn der ** ** Punkt entfernen, ist dann Botschaft, die ich immer noch den gleichen Fehler: „[Fehler ]: ungültiger Schlüsselname: likes123 (Code: 105, Version: 1.12.0) " – vid

+0

oops siehe aktualisierten Code oben. –

+0

Hier ist 'likes' ein Objekt, wenn Sie auf den Wert von' 123' in likes Objekt zugreifen wollen, müssen Sie wie folgt vorgehen: 'let value = likes.123' –