【问题标题】:Parse.User Reading User info if not current userParse.User 读取用户信息,如果不是当前用户
【发布时间】:2014-02-14 21:27:11
【问题描述】:

我正在尝试获取用户的电子邮件地址,而不是“当前用户”。

var query = new Parse.Query(Parse.User);
query.equalTo("objectId", "8Vv6axJ");  
query.find({
success: function(object) {
var username = object.get("username");
   alert(username);                                       
   }
 });    

我好像搞不定。文档似乎说我应该能够做到。似乎不喜欢 var=username 行。谢谢。

后期编辑:因此,根据建议,我将代码更改为:

var query = new Parse.Query(Parse.User);
query.equalTo("objectId", "cx1ha3YPZj"); 
query.find({
   success: function(results) {
         alert(results.length);       
         for (var i = 0; i < results.length; i++) {
             var username = results[i].get("username");
         }    

results.length 为 0 。我知道 objectID 是正确的,是从 Parse Browser 复制的。

好的。这是我确定的:

似乎虽然 Parse Docs 说任何用户都可以读取用户数据,但以下内容与此相矛盾。因此,来自 User 的以下 ACL 表示只有用户可以读取和写入它。如果您尝试更改 Parse.User 中的 ACL,当您刷新它时,它会将其更改回原始 ACL。

{"cx1ha3YPZj":{"read":true,"write":true}}

parse ACL link

解析.ACL(arg1) 创建一个新的 ACL。如果没有给出参数,则 ACL 对任何人都没有权限。如果参数是 Parse.User,则 ACL 将仅对该用户具有读写权限。

【问题讨论】:

  • 您是否在控制台中遇到错误?

标签: parse-platform


【解决方案1】:

Object 是多个浏览器中的保留名称。这可能就是您收到错误的原因。将object 更改为其他内容应该可以解决问题。

结果也将返回一个结果数组,例如:

var query = new Parse.Query(Parse.User);
query.equalTo("objectId", "8Vv6axJ");  
query.find({
    success: function(results) {
       alert(results.length);       
       for (var i = 0; i < results.length; i++) {
           var username = results[i].get("username");
       }                          
    }
});  

【讨论】:

  • 在哪些浏览器中对象是保留字?
  • 嗯。好吧,您使用 results.length 的想法导致它为 0。现在,开始做一些事情了。我知道 objectId 是正确的......我已经这样做了一千次了。
猜你喜欢
  • 1970-01-01
  • 2017-04-06
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 2011-03-08
相关资源
最近更新 更多