即使字段不为空,Parse.Object.get()也返回Undefined

Parse.Object.get() returns Undefined even though the field is not empty

本文关键字:get Undefined 返回 Object Parse 字段      更新时间:2023-09-26

我有一个从_User表到名为StoreData的表的指针。在注册_User之后,填充"StoreData",然后创建一个从_UserStoreData的指针并将其存储在_User中。

现在,当用户登录时,一个变量存储StoreData的对象,该对象名为storeData

当用户第一次登录时,storeData.get("city")返回"NewDelhi"。但在那之后,用户注销,然后再次登录,它总是返回undefined,尽管数据库中没有任何更改。

这是我的代码:

注册用户:

var StoreData = Parse.Object.extend("StoreData");
var storeData = new StoreData();
storeData.set("storeName",storeName);
storeData.set("phoneNumber1",phoneNumber1);
storeData.set("addressLine1",addressLine1);
storeData.set("addressLine2",addressLine2);
storeData.set("city",city);
storeData.set("state",state);
storeData.set("pinCode",pinCode);
storeData.set("location",location);
if(hasAuth>0){
   storeData.set("hasAuth",true);
}
else{
   storeData.set("hasAuth",false);   
}
if(phoneNumber2.length>0){
   storeData.set("phoneNumber2",phoneNumber2);
}
if(phoneNumber3.length>0){
   storeData.set("phoneNumber3",phoneNumber3);
}
if(email2.length>0){
   storeData.set("email2",email2);
}
if(landMark.length>0){
   storeData.set("landMark",landMark);
}
storeData.save(null,{
   success: function(storeData){
    var user = new Parse.User();
    user.set("username",email);
    user.set("password",password);
    user.set("store",storeData);
    user.signUp(null, {
    success: function(user){
      alert("Successfull");
      window.open("adminPage.html","_self");
    },
    error: function(error){
      alert("here");
      alert(error.message);
    }
 });
},
error: function(storeData,error){
   alert(error.message);
}
);

用户已成功注册,这一点很明显,当用户登录时,以下代码正在工作:

var currentUser = Parse.User.current();
   if(currentUser){
       var storeData = currentUser.get("store");
        alert(storeData.get("city"));
        var city = storeData.get("city");
        alert(city);

第一次,警报提供城市名称,但第二次登录后返回未定义。

我做错了什么?

在后者的运行中,用户填充了指针数据,但没有填充指向的对象。

有两种方法来填充它们:

  1. 在带有指针键的提取中使用includeKey
  2. 显式fetch指向的对象

对于您的用户来说,您实际上并没有自己进行提取,因此您应该在尝试使用之前提取指向的对象。