Back4app 解析服务器检索到的 ObjectId

Posted

技术标签:

【中文标题】Back4app 解析服务器检索到的 ObjectId【英文标题】:Back4app Parse Server Retrieved ObjectId 【发布时间】:2021-12-09 11:55:51 【问题描述】:

您好,我想知道为什么我无法从这个 json 对象中检索到 objectId,即使我可以在控制台上打印出 stringify。

我可以毫无问题地检索所有其他列,但不能检索 objectId。它发生在我的 back4app Parse 服务器中的所有表上。

我需要 objectId 来更新程序中的某些列

下面是我的代码

1)

   const parseQuery = new Parse.Query("User");
    parseQuery.equalTo("username", "Azha");
    let queryResult = await parseQuery
      .find()
      .then((results) => 
        results.forEach((prod) => 
//if i change below to prod.get("objectId") error undefined appear
          console.log("Product ID Available : " + prod.get("username"));
     
        );
      )
      .catch((error) => 
        console.log(error);
      );

    const parseQuery = new Parse.Query("User");
    parseQuery.equalTo("username", "Azha");
    try 
      let todos = await parseQuery.find();
      if (todos.length > 0) 
//if i change below to todos[0].get("objectId") error undefined appear
        console.log("yes Approval : " + todos[0].get("companyname"));
       else 
        console.log("No Approval");
      
      console.log("- value is : " + JSON.stringify(todos));
      console.log("----------------------");  
     catch (error) 
  
      Alert.alert("Error!", error.message);
     
    

下面是json打印输出

["sessionToken":"r:d9166aa9d7143463c46725d095b53946","username":"Azha","createdAt":"2021-09-21T15:27:01.088Z","updatedAt":"2021-10-10T13 :01:27.126Z","companyname":"XXX","fullname":"XXX","email":"azha@abc.com.my","emailVerified":true,"accesslevel":"Maintenence" ,"companydivision":"维护","职位":"技术员","电话号码":"999","userteam":"B","useremail":"azha@abc.com.my","ACL" :"*":"read":true,"IuBGmCtxyu":"read":true,"write":true,"objectId":"IuBGmCtxyu"]

【问题讨论】:

尝试使用 _id 而不是 objectId 。 \n 例如console.log(data._id) tq 为您的回复,我尝试仍然错误未定义 【参考方案1】:

是的,我刚刚找到了我的解决方案。使用下面的 object1:

   const parseQuery = new Parse.Query("User");
    parseQuery.equalTo("username", "Azha");

    try 
      let todos = await parseQuery.find();
      var object1 = JSON.parse(JSON.stringify(todos));
  
      console.log("2- value is : " + object1[0].objectId);

    
     catch (error) 

      Alert.alert("Error!", error.message);
 
    

【讨论】:

你也可以todos[0].id

以上是关于Back4app 解析服务器检索到的 ObjectId的主要内容,如果未能解决你的问题,请参考以下文章

解析:使用 Google oAuth 初始注册后未检索到 sessionToken

未收到在 Back4App 上解析的 Android 推送通知

Back4App - 有限数量用户的解析类级别权限

back4app 解析,如何将用户对象 ID 应用到另一个类指针中

尝试显示从服务器对象检索到的值时显示空值

back4App,使用alamofire查询