नीचे मेरा कोड है, मैं फायरबेस फायरस्टोर रेस्ट एपीआई का उपयोग करके एक पोस्ट अनुरोध भेजने की कोशिश कर रहा हूं। यह काम करता है, लेकिन यह एक यादृच्छिक रेफरी आईडी टोकन उत्पन्न करता है जो इसे मेरे द्वारा भेजे गए पोस्ट डेटा (फ़ील्ड) से जोड़ता है, जिससे इससे संबंधित होना मुश्किल हो जाता है।

मैं अपने पोस्ट डेटा को कस्टम आईडी टोकन से लिंक करने में सक्षम होना चाहता हूं।

final String customIdToken9 = 'customIdToken9'
String url = "https://firestore.googleapis.com/v1/projects/myAppId/databases/(default)/documents/customers/$customIdToken9" 
const _body = {
"fields": {
    "androidNotificationToken": {
        "nullValue": null
    },
    "fullname": {
        "stringValue": "Custom"
    },
    "uid": {
        "stringValue": "$customIdToken9"
    },
    "admin": {
        "stringValue": ""
    },
    "email": {
        "stringValue": "customer1@gmail.com"
    },
    "photo": {
        "stringValue": ""
    },
    "coverPhoto": {
        "stringValue": ""
    },
    "bio": {
        "stringValue": ""
    },
    "role": {
        "stringValue": "user"
    },
    "mobile": {
        "stringValue": "092222"
    }
}
 }
   http.post(url, body = _body);

जब मैं इस कोड को ऊपर चलाता हूं तो यह वापस आ जाता है

{
"error": {
    "code": 400,
    "message": "Document parent name \"projects/MyAppId/databases/(default)/documents/customers\" lacks \"/\" at index 59.",
    "status": "INVALID_ARGUMENT"
}

}

अगर मैं customTokenId9 हटा देता हूं, तो यह काम करता है, लेकिन यह एक यादृच्छिक टोकन आईडी उत्पन्न करता है, जो मुझे नहीं चाहिए

String url = "https://firestore.googleapis.com/v1/projects/myAppId/databases/(default)/documents/customers/" 

http.post(url, body = _body);
1
Okafor Zuruoke 21 अगस्त 2021, 13:21

2 जवाब

सबसे बढ़िया उत्तर

यदि आप अपना स्वयं का दस्तावेज़ नाम निर्दिष्ट करना चाहते हैं, तो आपको अपने URL अनुरोध में documentId नामक एक क्वेरी पैरामीटर जोड़ना होगा। यहां बताया गया है कि यह आपके कोड पर कैसा दिखना चाहिए:

final String customIdToken9 = 'customIdToken9'
String url = "https://firestore.googleapis.com/v1/projects/myAppId/databases/(default)/documents/customers?documentId=$customIdToken9" 
const _body = {
"fields": {
    "androidNotificationToken": {
        "nullValue": null
    },
    "fullname": {
        "stringValue": "Custom"
    },
    "uid": {
        "stringValue": "$customIdToken9"
    },
    ...
  }
}

दस्तावेज़ बनाने के लिए क्लाइंट-असाइन किए गए दस्तावेज़ आईडी का उपयोग करना। यह वैकल्पिक है। यदि निर्दिष्ट नहीं है, तो सेवा द्वारा एक यादृच्छिक आईडी स्वचालित रूप से असाइन की जाएगी।

इस में पूरा विवरण दिया गया है लिंक और आप इसे क्वेरी पैरामीटर अनुभाग में देखेंगे। आप एपीआई का परीक्षण करने का भी प्रयास कर सकते हैं और इसके curl समकक्ष को देखने के लिए इसका विस्तार कर सकते हैं।

इसके अतिरिक्त, आप इस दस्तावेज़ीकरण< को देख सकते हैं /a> यह समझने के लिए कि क्वेरी पैरामीटर कैसे काम करता है। यह फायरबेस द्वारा पेश किए गए किसी भी आरईएसटी एपीआई पर लागू होता है।

0
RJC 26 अगस्त 2021, 01:53

आपका चर final String customIdToken क्यों है लेकिन आप $customIdToken9 का उपयोग कर रहे हैं यह $customIdToken होना चाहिए।

0
Mozes Ong 21 अगस्त 2021, 10:40