2017-09-02 1 views
0

J'utilise le serveur d'analyse pour vivre une requête contenant une classe contenant des pointeurs. Lorsque j'utilise include() dans la requête normale, il obtenir toutes les données du pointeur, mais dans la requête en direct je reçois seulement le objectIdserveur d'analyse: inclure pointeur dans une requête en direct dans 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'))) 
}) 

Quand je fais JSON.stringify(this.conversations[index].get('lastMessage')) donne seulement le objectId. Je besoin d'un moyen d'accéder au contenu du pointeur lastMessage

Cordialement

Répondre

0

includeKey()/include() est pas pris en charge dans les requêtes en direct:

c'est un problème côté serveur, le includeKey est ignorée lors de l'inscription à la requête. L'arbre de décision est traité de manière synchrone après l'enregistrement d'un objet sur le serveur d'analyse, donc nous n'avons pas la possibilité d'injecter des inclusions. Nous aurions besoin de refactoriser toute la logique du serveur afin de les supporter.

Voir les questions connexes à suivre:

+0

est donc il y a une méthode que je peux utiliser pour obtenir les mêmes résultats? –

+0

Oui, vous devez aller chercher les données avant d'y accéder. – nathan