2017-09-02 3 views
0

Ich benutze Parse-Server zu leben Abfrage einer Klasse mit Zeilen mit Zeigern. Wenn ich include() in der normalen Abfrage verwenden es alle Daten des Zeigers erhalten, aber in der Live-Abfrage erhalte ich nur die objectIdParse-Server: Zeiger in Live-Abfrage in JavaScript SDK

Code:

var currentUser = Parse.User.current(); 
const Conversation = Parse.Object.extend("conversations"); 

var fromQuery = new Parse.Query(Conversation); 
fromQuery.equalTo("from", currentUser); 

var toQuery = new Parse.Query(Conversation); 
toQuery.equalTo("to", currentUser); 

var mainQuery = Parse.Query.or(fromQuery, toQuery); 
mainQuery.include("to") 
mainQuery.include("from") 
mainQuery.include("lastMessage") 
// FIXME: DEBUG: 
this.convsubscription = mainQuery.subscribe(); 

mainQuery.find().then((conversations) => { 
    for (var i = 0; i < conversations.length; i++){ 
    var object = conversations[i] 
    this.conversations.unshift(object); 
    } 
}) 


this.convsubscription.on('update', (object) => { 
    // we will get the index of updated object  
    var index = this.conversations.findIndex(x => x.id == object.id); 
    console.log(index); 
    // then we will remove the old object and insert the updated one 
    this.conversations.splice(index, 1 ,object) 

    console.log(JSON.stringify(this.conversations[index].get('lastMessage'))) 
}) 

Wenn ich JSON.stringify(this.conversations[index].get('lastMessage')) tun gibt es nur die objectId. Ich brauche einen Weg, um den Inhalt des Zeigers für den Zugriff auf lastMessage

Grüße

Antwort

0

includeKey()/include() nicht im Live-Abfragen unterstützt:

dies ist eine serverseitige Ausgabe, die includeKey wird ignoriert bei der Abfrage der Anfrage. Der Entscheidungsbaum wird synchron verarbeitet, nachdem ein Objekt auf dem Parse-Server gespeichert wurde. Daher haben wir nicht die Möglichkeit, Einschlüsse zu injizieren. Wir müssten die gesamte serverseitige Logik umgestalten, um diese zu unterstützen.

Siehe verwandte Themen den Überblick zu behalten:

+0

so ist es eine Methode ist, ich die gleichen Ergebnisse können erreichen? –

+0

Ja, Sie müssen die Daten abrufen, bevor Sie darauf zugreifen. – nathan