Платформа Parse - как сделать запрос на основе только указателя - PullRequest
0 голосов
/ 04 июля 2019

Я строю систему комментирования, которая имеет функцию ответа. человек, который создает родительский или основной комментарий, я сохраняю его профиль в виде указателя, который выбирается с использованием этой строки кода ниже let myProfile: Parse.Object = await parentThread.get('profile').fetch(masterKey)

ответы хранятся в структуре массива в этом основном потоке, ответы хранятся в основном таким же образом (см. Структуру ниже)

parentComment = {
    threadID: string
    uid: string
    fullname: string
    photos: string
    comment: string
    replies: replyComment[]    
}


replyComment = {
    uid: string
    fullname: string
    photos: string
    comment: string
}

Я могу получить профиль верхнего уровня без проблем, но любая попытка получить / сгенерировать ответные профили пользователей на приведенной ниже карте оказывается очень тщетной Есть ли более простой способ получить доступ к данным, если у вас есть указатель?

Сама структура профиля пользователя не содержит указателей, как я могу связать ответный комментарий с профилем?

const user = request.user
const req = request.params
if (!req) throw 'request params is required'   
if (!req.eventID) throw 'request event params is required'        
const getEventData: ParseEvent = <ParseEvent>await get(Event, req.eventID)

var query = new Parse.Query(EventComment);
    query.equalTo("parent", getEventData);
    query.descending("createdAt");

    const getComments = await query.find();      

    const latestUsers = getComments.map( async parentThread => { 

       let myProfile: Parse.Object = await parentThread.get('profile').fetch(masterKey) // fetch relational profile    
       let getReplies = parentThread.get("replies")

       const returnUser = {
           threadID: parentThread.toJSON().objectId,
           uid: myProfile.get("uid"),
           fullname: myProfile.get("fullname"),
           photos: myProfile.get("photos")[0] || "",   
           comment: parentThread.get("comment"),
           replies: []
       }
        return Promise.resolve( returnUser )
    })
    // Prepare the final timeline data for  the user and merge all data
    const finalUsers = await Promise.all(latestUsers)  

Конечный результат, которого я хочу достичь, состоит в том, чтобы заполнить массив replies: [] в returnUser реальными живыми данными профиля пользователя, чтобы при изменении их имени или фотографии профиля он отображался, а не просто помещал данные в массив и хранить его там

...