gpt4 book ai didi

javascript - 将查询中返回的 objectId 更改为实际用户的 objectId

转载 作者:行者123 更新时间:2023-12-03 12:17:27 27 4
gpt4 key购买 nike

使用 parse.com 和 JavaScript SDK。

这就是我想要实现的目标。

页面上将用户( friend )列表返回给用户,然后他们可以单击其中一个用户,页面将更新以列出所有该用户的项目(基本上是图像)。

此查询工作正常并返回用户列表。

var currentUser = Parse.User.current();
var FriendRequest = Parse.Object.extend("FriendRequest");

var query = new Parse.Query(FriendRequest);
query.include('toUser');
query.include('SentTo');
query.include("myBadge");
query.equalTo("fromUser", currentUser);
query.equalTo("status", "Request sent");

query.find({
success: function (results) {
var friends = [];
for (var i = 0; i < results.length; i++) {
friends.push({
imageURL: results[i].get('toUser').get('pic'),
friendRequestId: results[i].id,
username: results[i].get('toUser').get('username')

});
}

// TW: replaced dynamic HTML generation with wrapper DIV that contains IMG and name DIV
_.each(friends, function (item) {
// using a wrapper so the user can click the pic or the name
var wrapper = $('<div class="wrapper" data-friend-request-id="' + item.friendRequestId + '"></div>');
wrapper.append('<img class="images" src="' + item.imageURL + '" />');
wrapper.append('<div>' + item.username + '</div>');
$('#container').append(wrapper);
});

},
error: function (error) {
alert("Error: " + error.code + " " + error.message);
}
});

****下面的查询应包含在上面选择并存储在 window.selectedFriendRequestId 中的用户(保存在变量friendRequest ****中

此查询查看 myBadges 类和用户引用“SentTo”,所使用的引用例如是 a3aePaphBF,它是实际的 _User objectID。

 function FriendProfile() {

var friendRequest = "window.selectedFriendRequestId";
console.log(window.selectedFriendRequestId);

var myBadges = Parse.Object.extend("myBadges");
var query = new Parse.Query(myBadges);

query.equalTo("SentTo", friendRequest);
query.find({
success: function (results) {
// If the query is successful, store each image URL in an array of image URL's
imageURLs = [];
for (var i = 0; i < results.length; i++) {
var object = results[i];
imageURLs.push(object.get('BadgeName'));
}
// If the imageURLs array has items in it, set the src of an IMG element to the first URL in the array
for (var j = 0; j < imageURLs.length; j++) {
$('#imgs').append("<img src='" + imageURLs[j] + "'/>");
}
},
error: function (error) {
// If the query is unsuccessful, report any errors
alert("Error: " + error.code + " " + error.message);
}
});
}
<小时/>

问题是第一个查询没有返回可以在第二个查询中用作引用的 objectId。例如,不会返回 a3aePaphBF,但会返回 cr3LG70vrF。

如何在第一个查询中返回实际的 _User objectid 以便我可以使它们匹配?

enter image description here

enter image description here

最佳答案

获取用户的 ID:

results[i].get('toUser').id

因此,如果您更新执行 friends.push(...) 的代码部分:

friends.push({
imageURL: results[i].get('toUser').get('pic'),
friendRequestId: results[i].id,
username: results[i].get('toUser').get('username'),
userId: results[i].get('toUser').id
});

然后在您创建包装器的位置:

_.each(friends, function (item) {
// using a wrapper so the user can click the pic or the name
var wrapper = $('<div class="wrapper"'
+ ' data-friend-request-id="' + item.friendRequestId + '"'
+ ' data-to-user-id="' + item.userId + '"></div>');
wrapper.append('<img class="images" src="' + item.imageURL + '" />');
wrapper.append('<div>' + item.username + '</div>');
$('#container').append(wrapper);
});

请注意,我添加了另一个数据属性来保存 toUser 的 ID。

现在,如果您按照 other question 中的提示进行操作, ,您还可以调整附加点击处理程序的代码以传递 toUserId :

$('#container').on('click', '.wrapper', function () {
var wrapper = $(this);
var friendRequestId = wrapper.data('friendRequestId');
var toUserId = wrapper.data('toUserId');
FriendProfile(friendRequestId, toUserId);
// other code ...
});

最后,您的 FriendProfile() 函数现在可以根据需要使用其中一个参数:

function FriendProfile(friendRequestId, toUserId) {
var toUser = new Parse.User();
toUser.id = toUserId;

var myBadges = Parse.Object.extend("myBadges");
var query = new Parse.Query(myBadges);

query.equalTo("SentTo", toUser);
// ... etc ...
}

注意:出于隐私原因,应锁定 User 类,当您的云函数中有以下行时,您不应该能够读取除云代码之外的其他用户的任何属性:

Parse.Cloud.useMasterKey();

关于javascript - 将查询中返回的 objectId 更改为实际用户的 objectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24618292/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com