2016-01-09 52 views
1

我有一個指針,從_User表到指定名爲StoreData的表。 註冊_User後,將填充「StoreData」,然後創建一個從_UserStoreData的指針並存儲在_User中。Parse.Object.get()返回未定義,即使該字段不爲空

現在,當用戶登錄時,變量存儲名爲storeData的對象StoreData

當用戶第一次登錄時,storeData.get("city")返回「NewDelhi」。但在此之後,用戶已註銷,然後再次登錄,它始終返回未定義,雖然數據庫中沒有任何更改。

這裏是我的代碼:

要註冊一個用戶:

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

在後者運行中,用戶填充其指針數據,但指向的對象未填充。

有2種方式來填充他們:

  1. 使用includeKey上的指針鍵抓取
  2. 明確fetch所指向的對象

對於你的用戶,你不要」實際上你自己做一個抓取,所以你應該在你嘗試使用它之前抓取指向的對象。

相關問題