Я строю систему комментирования, которая имеет функцию ответа. человек, который создает родительский или основной комментарий, я сохраняю его профиль в виде указателя, который выбирается с использованием этой строки кода ниже
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
реальными живыми данными профиля пользователя, чтобы при изменении их имени или фотографии профиля он отображался, а не просто помещал данные в массив и хранить его там