2016-04-03 20 views
6

मेरे पास एक कस्टम बूलियन फ़ील्ड है जिसे मेरे कस्टम ParseUser ऑब्जेक्ट में स्वीकृत कहा जाता है। हम इस क्षेत्र को वेब ऐप के माध्यम से झूठी से सच में बदलते हैं। प्रलेखन के अनुसार, मैं,) fetchInBackground (साथ झंडा बदलने के बाद currentUser अद्यतन करने के लिए सक्षम होना चाहिए इस तरह:एंड्रॉइड पार्स: स्थानीय उपयोगकर्ता को अपडेट नहीं किया जा सकता

ParseUser.getCurrentUser().fetchInBackground(new GetCallback<ParseObject>() { 
    @Override 
    public void done(ParseObject parseObject, ParseException e) { 
     Log.v("qwer", "fetched User: " + ((CustomUser)parseObject).isApproved()); 
    } 
}); 

लेकिन फिर भी मंजूरी दे दी है झंडा सही पर सेट किया गया है, परिणाम सर्वर से वापस आ रहा हमेशा झूठा है। जब तक मैं लॉगआउट नहीं करता और फिर से लॉगिन नहीं करता, उस बिंदु पर वर्तमान उपयोगकर्ता और संबंधित फ़ील्ड सर्वर के साथ समन्वयित होता है।

स्थानीय उपयोगकर्ता के लिए fetchInBackground() क्यों नहीं लाता है, और यदि मैं इसे गलत तरीके से उपयोग कर रहा हूं, तो मैं वर्तमान उपयोगकर्ता को कैसे अपडेट करूं।

+0

क्या आप वाकई कस्टमसेसर को पार्स ऑब्जेक्ट कास्ट कर सकते हैं? – Shane

+0

हाँ, मैंने ParseUser कक्षा बढ़ा दी। तकनीकी रूप से मैं केवल कॉलबैक प्रकार को कस्टम यूज़र के रूप में परिभाषित कर सकता था लेकिन मैंने इसे इस उदाहरण में स्पष्टता के लिए डाला। – jwBurnside

+0

पार्स का उपयोग करने के बाद से कुछ समय हो गया है, लेकिन स्थानीय डेटास्टोर को सहेजने के लिए आपको 'पिनइनबैकग्राउंड' करने की आवश्यकता नहीं है? –

उत्तर

1

कृपया this लिंक देखें, बिंदु pinInBackground उपयोग करने के लिए और भी अपने Application कक्षा में Parse.enableLocalDatastore(yourContext); के साथ स्थानीय डेटासंग्रह सक्षम है।


अद्यतन:

सुनिश्चित नहीं हैं कि अगर यह आपकी मदद करेगा, लेकिन मैं आप के साथ एक ऐसी ही स्थिति है:

मैं एक ठेठ user.put("userVerified", true); तो user.saveInBackground एक बूलियन कि क्या उपयोगकर्ता को इंगित करता है को बचाने के लिए करते हैं सत्यापित किया गया है, फिर अगली गतिविधि में मैं ध्वज को पुनः प्राप्त करने के लिए user.getBoolean("userVerified") का उपयोग करता हूं ... क्या यह ऐसा कुछ होगा जिसे आप विचार कर सकते हैं?

+0

हां, मैं पिनिंग से परिचित हूं। मुझे समझ में नहीं आता कि मुझे वर्तमान यूज़र ऑब्जेक्ट को पिन करना होगा, यह मेरे सत्र की अवधि के लिए मौजूद है। मैं बस मौजूदा यूज़र को अपडेट करना चाहता हूं, स्थानीय डेटा की दूसरी परत का प्रबंधन नहीं करता हूं। – jwBurnside

+0

हम्म ... मेरे अपडेट किए गए उत्तर पर नज़र डालें, सुनिश्चित न करें कि यह आपके प्रश्न का उत्तर दे, लेकिन यह एक लायक हो सकता है। –

+0

अद्यतन के लिए धन्यवाद। यह काफी काम नहीं करेगा क्योंकि हम एक वेबपैड के माध्यम से ध्वज अपडेट कर रहे हैं, न कि क्लाइंट-साइड। क्या मुझे saveInBackground() क्लाइंट साइड का उपयोग करना चाहिए, वर्तमान उपयोगकर्ता स्वयं समन्वयित होगा (अगर मुझे सही याद आ रहा है) और सबकुछ ठीक होगा। – jwBurnside

संबंधित मुद्दे