2016-07-26 25 views
12

मैं फायरबेस वर्तमान टाइमस्टैम्प प्राप्त करना चाहता था, इसे प्राप्त करने का कोई तरीका नहीं ढूंढ पाया। मैं छवि में दिखाए गए बच्चे को सहेजना चाहता हूं। और इसके लिए मुझे टाइमस्टैंप मिलना है और तदनुसार तारीख मिलनी है। कृपया मदद ...मिलीसेकंड में फायरबेस सर्वर का वर्तमान टाइमस्टैम्प कैसे प्राप्त करें?

here is the result I want to get

+0

क्या आपका मतलब है कि आप सर्वर प्रारूप को उस प्रारूप (डीडी-एमएम-वाईवाय) के साथ एक कुंजी के रूप में सेट करना चाहते हैं? – Wilik

+0

@ विलिक। हां, बिल्कुल –

उत्तर

18

आप ServerValue.TIMESTAMP जो {".sv" : "timestamp"} जोड़ी के साथ एक Map<String, String> प्रकार है का उपयोग करके सर्वर समय निर्धारित कर सकते हैं। जब इसे फायरबेस डेटाबेस में भेजा जाता है, तो इसे में बदल दिया जाएगा जैसे 1469554720

तो समस्या यह है कि आप इसे सीधे कुंजी के रूप में सेट नहीं कर सकते हैं। सबसे अच्छा तरीका आपकी ऑब्जेक्ट के अंदर टाइमस्टैम्प डालना है और गारंटीकृत अद्वितीय कुंजी प्राप्त करने के लिए DatabaseReference.push() का उपयोग करना है।

उदाहरण

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
String key = ref.push().getKey(); // this will create a new unique key 
Map<String, Object> value = new HashMap<>(); 
value.put("name", "shesh"); 
value.put("address", "lucknow"); 
value.put("timestamp", ServerValue.TIMESTAMP); 
ref.child(key).setValue(value); 

आपको लगता है कि प्रारूप (dd-mm-वर्ष) के साथ इसे सहेजना चाहते हैं के लिए, वहाँ एक हैक है, लेकिन यह अनुशंसित नहीं है। आपको इसे पहले (ServerValue.TIMESTAMP) को किसी अन्य अस्थायी नोड में सहेजने की आवश्यकता है, और उसके बाद Date कक्षा का उपयोग करके उस प्रारूप में कनवर्ट करने से पहले टाइमस्टैम्प पुनर्प्राप्त करें।

+0

आपको बहुत बहुत धन्यवाद .. मैंने कोशिश की और यह ठीक काम कर रहा है। मैं भी इस तरह से कर सकता हूँ। लेकिन फिर क्या इस सर्वरValue.TIMESTAMP को एक कुंजी के रूप में उपयोग करना संभव है? –

+0

आपका स्वागत है। मुझे लगता है कि यह संभव है लेकिन दो एपीआई कॉल होंगे, पहले TIMESTAMP मान सेट करें और फिर 'Query.limitToLast (1);' का उपयोग कर अंतिम कुंजी प्राप्त करें, यह अनुशंसा नहीं की जाती है क्योंकि एक संभावना है कि दो उपयोगकर्ताओं ने दो TIMESTAMPs डाले एक ही समय में आप सही कुंजी नहीं प्राप्त कर सकते हैं। बीटीडब्ल्यू, अगर आप ऐसा सोचते हैं तो कृपया मेरे उत्तर को स्वीकार के रूप में चिह्नित करें। :) – Wilik

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