การใช้งาน API
คุณสามารถใช้ URL ฐานข้อมูลเรียลไทม์ของ Firebase เป็นจุดสิ้นสุด REST ได้ สิ่งที่คุณต้องทำคือเพิ่ม .json
ต่อท้าย URL และส่งคำขอจากไคลเอ็นต์ HTTPS ที่คุณชื่นชอบ
ต้องใช้ HTTPS Firebase ตอบสนองต่อการรับส่งข้อมูลที่เข้ารหัสเท่านั้นเพื่อให้ข้อมูลของคุณยังคงปลอดภัย
GET - การอ่านข้อมูล
ข้อมูลจากฐานข้อมูลเรียลไทม์ของคุณสามารถอ่านได้โดยการออกคำขอ HTTP GET
ไปยังปลายทาง ตัวอย่างต่อไปนี้สาธิตวิธีที่คุณอาจดึงข้อมูลชื่อผู้ใช้ที่คุณจัดเก็บไว้ในฐานข้อมูลเรียลไทม์ก่อนหน้านี้
curl 'https://[PROJECT_ID].firebaseio.com/users/jack/name.json'
คำขอที่สำเร็จจะแสดงด้วยรหัสสถานะ HTTP 200 OK
การตอบสนองประกอบด้วยข้อมูลที่เกี่ยวข้องกับเส้นทางในคำขอ GET
{ "first": "Jack", "last": "Sparrow" }
PUT - การเขียนข้อมูล
คุณสามารถเขียนข้อมูลด้วยคำขอ PUT
curl -X PUT -d '{ "first": "Jack", "last": "Sparrow" }' \ 'https://[PROJECT_ID].firebaseio.com/users/jack/name.json'
คำขอที่สำเร็จจะแสดงด้วยรหัสสถานะ HTTP 200 OK
การตอบสนองประกอบด้วยข้อมูลที่ระบุในคำขอ PUT
{ "first": "Jack", "last": "Sparrow" }
POST - การพุชข้อมูล
เพื่อให้บรรลุผลเทียบเท่ากับ JavaScript push()
วิธีการ (ดู รายการข้อมูล ) คุณสามารถส่งคำขอ POST
ได้
curl -X POST -d '{"user_id" : "jack", "text" : "Ahoy!"}' \ 'https://[PROJECT_ID].firebaseio.com/message_list.json'
คำขอที่สำเร็จจะแสดงด้วยรหัสสถานะ HTTP 200 OK
การตอบสนองประกอบด้วยชื่อลูกของข้อมูลใหม่ที่ระบุในคำขอ POST
{ "name": "-INOQPH-aV_psbk3ZXEX" }
PATCH - การอัปเดตข้อมูล
คุณสามารถอัปเดตรายการย่อยเฉพาะในสถานที่โดยไม่ต้องเขียนทับข้อมูลที่มีอยู่โดยใช้คำขอ PATCH
ลูกที่มีชื่อในข้อมูลที่เขียนด้วย PATCH
จะถูกเขียนทับ แต่ลูกที่ถูกละเว้นจะไม่ถูกลบ ซึ่งเทียบเท่ากับฟังก์ชัน JavaScript update()
curl -X PATCH -d '{"last":"Jones"}' \ 'https://[PROJECT_ID].firebaseio.com/users/jack/name/.json'
คำขอที่สำเร็จจะแสดงด้วยรหัสสถานะ HTTP 200 OK
การตอบสนองมีข้อมูลที่ระบุในคำขอ PATCH
{ "last": "Jones" }
ลบ - การลบข้อมูล
คุณสามารถลบข้อมูลด้วยคำขอ DELETE
:
curl -X DELETE \ 'https://[PROJECT_ID].firebaseio.com/users/jack/name/last.json'
คำขอ DELETE
ที่สำเร็จจะถูกระบุด้วยรหัสสถานะ HTTP 200 OK
พร้อมการตอบสนองที่มี JSON null
แทนที่วิธีการ
หากคุณทำการเรียก REST จากเบราว์เซอร์ที่ไม่รองรับวิธีการก่อนหน้า คุณสามารถแทนที่วิธีการร้องขอได้โดยการร้องขอ POST
และตั้งค่าวิธีการของคุณโดยใช้ส่วนหัวคำขอ X-HTTP-Method-Override
curl -X POST -H "X-HTTP-Method-Override: DELETE" \ 'https://[PROJECT_ID].firebaseio.com/users/jack/name/last.json'
คุณยังสามารถใช้พารามิเตอร์การค้นหา x-http-method-override
อีกด้วย
curl -X POST \ 'https://[PROJECT_ID].firebaseio.com/users/jack/name/last.json?x-http-method-override=DELETE'
คำขอแบบมีเงื่อนไข
คำขอแบบมีเงื่อนไข ซึ่งเทียบเท่ากับ REST ของการดำเนินการธุรกรรม SDK จะอัปเดตข้อมูลตามเงื่อนไขที่กำหนด ดูภาพรวมของเวิร์กโฟลว์และเรียนรู้เพิ่มเติมเกี่ยวกับการร้องขอแบบมีเงื่อนไขสำหรับ REST ใน การบันทึกข้อมูล
Firebase ETag
Firebase ETag คือตัวระบุที่ไม่ซ้ำกันสำหรับข้อมูลปัจจุบันในตำแหน่งที่ระบุ หากข้อมูลเปลี่ยนแปลงที่ตำแหน่งนั้น ETag ก็เปลี่ยนแปลงเช่นกัน ต้องระบุ Firebase ETag ในส่วนหัวสำหรับคำขอ REST เริ่มต้น (โดยทั่วไปคือ GET
แต่อาจเป็นอย่างอื่นที่ไม่ใช่ PATCH
)
curl -i 'https://[PROJECT_ID].firebaseio.com/posts/12345/upvotes.json' -H 'X-Firebase-ETag: true'
ถ้าตรงกัน
เงื่อนไข if-match
ระบุค่า ETag สำหรับข้อมูลที่คุณต้องการอัปเดต หากคุณใช้เงื่อนไข ฐานข้อมูลเรียลไทม์จะดำเนินการเฉพาะคำขอที่ ETag ที่ระบุในคำขอเขียนตรงกับ ETag ของข้อมูลที่มีอยู่ในฐานข้อมูลเท่านั้น ดึงข้อมูล ETag ที่ตำแหน่งด้วยคำขอ Firebase ETag หากคุณต้องการเขียนทับตำแหน่งใดๆ ที่เป็นโมฆะ ให้ใช้ null_etag
curl -iX PUT -d '11' 'https://[PROJECT_ID].firebaseio.com/posts/12345/upvotes.json' -H 'if-match: [ETAG_VALUE]'
การตอบสนองที่คาดหวัง
ตารางต่อไปนี้แสดงภาพรวมของการตอบสนองที่คาดหวังสำหรับคำขอแต่ละประเภท โดยอิงตามการจับคู่ ETag
ประเภทคำขอ | 'X-Firebase-ETag: จริง' | การแข่งขัน ETagif_match: <matching etag> | ETag ไม่ตรงกันif_match: <no matching etag> | |
---|---|---|---|---|
รับ | สถานะ/เนื้อหาการตอบกลับ | 200: "<data_at_path>" | 400: "...ไม่รองรับ.." | 400: "...ไม่รองรับ.." |
เพิ่มส่วนหัว | ETag: <ETag_of_data> | ไม่มี | ไม่มี | |
ใส่ | สถานะ/เนื้อหาการตอบกลับ | 200: "<put_data>" | 200: "<put_data>" | 412: "...ETag ไม่ตรงกัน.." |
เพิ่มส่วนหัว | ETag: <ETag_of_put_data> | ไม่มี | ETag: <database_ETag> | |
โพสต์ | สถานะ/เนื้อหาการตอบกลับ | 200: "<post_data>" | 400: "...ไม่รองรับ.." | 400: "...ไม่รองรับ.." |
เพิ่มส่วนหัว | ETag: <ETag_of_post_data> | ไม่มี | ไม่มี | |
ปะ | สถานะ/เนื้อหาการตอบกลับ | 400: "...ไม่รองรับ.." | 400: "...ไม่รองรับ.." | 400: "...ไม่รองรับ.." |
เพิ่มส่วนหัว | ไม่มี | ไม่มี | ไม่มี | |
ลบ | สถานะ/เนื้อหาการตอบกลับ | 200: เป็นโมฆะ | 200: "<data_after_put>" | 412: "...ETag ไม่ตรงกัน.." |
เพิ่มส่วนหัว | ETag: <ETag_of_null> | ไม่มี | ETag: <database_ETag> |
พารามิเตอร์แบบสอบถาม
Firebase Database REST API ยอมรับพารามิเตอร์และค่าการสืบค้นต่อไปนี้:
เข้าถึง_token
รองรับคำขอทุกประเภท ตรวจสอบสิทธิ์คำขอนี้เพื่ออนุญาตการเข้าถึงข้อมูลที่ได้รับการป้องกันโดยกฎความปลอดภัยของฐานข้อมูล Firebase Realtime ดู เอกสารประกอบการรับรองความถูกต้อง REST สำหรับรายละเอียด
curl 'https://[PROJECT_ID].firebaseio/users/jack/name.json?access_token=CREDENTIAL'
ตื้น
นี่คือฟีเจอร์ขั้นสูงที่ออกแบบมาเพื่อช่วยให้คุณทำงานกับชุดข้อมูลขนาดใหญ่โดยไม่จำเป็นต้องดาวน์โหลดทุกอย่าง ตั้งค่านี้เป็น true
เพื่อจำกัดความลึกของข้อมูลที่ส่งกลับที่ตำแหน่งหนึ่ง หากข้อมูลที่ตำแหน่งนั้นเป็น JSON ดั้งเดิม (สตริง ตัวเลข หรือบูลีน) ค่าของข้อมูลนั้นก็จะถูกส่งกลับ หากสแนปชอตข้อมูลที่ตำแหน่งนั้นเป็นออบเจ็กต์ JSON ค่าของแต่ละคีย์จะถูกตัดทอนให้เป็น true
ข้อโต้แย้ง | วิธีส่วนที่เหลือ | คำอธิบาย |
---|---|---|
ตื้น | รับ | จำกัดความลึกของการตอบสนอง |
curl 'https://[PROJECT_ID].firebaseio/.json?shallow=true'
โปรดทราบว่า shallow
ไม่สามารถผสมกับพารามิเตอร์การค้นหาอื่นๆ ได้
พิมพ์
จัดรูปแบบข้อมูลที่ส่งคืนในการตอบกลับจากเซิร์ฟเวอร์
ข้อโต้แย้ง | วิธีส่วนที่เหลือ | คำอธิบาย |
---|---|---|
สวย | รับ วาง โพสต์ แพทช์ ลบ | ดูข้อมูลในรูปแบบที่มนุษย์สามารถอ่านได้ |
เงียบ | รับ ใส่ โพสต์ แพตช์ | ใช้เพื่อระงับเอาต์พุตจากเซิร์ฟเวอร์เมื่อเขียนข้อมูล ผลลัพธ์ที่ได้จะว่างเปล่าและระบุด้วยรหัสสถานะ 204 No Content HTTP |
curl 'https://[PROJECT_ID].firebaseio.com/users/jack/name.json?print=pretty'
curl -X PUT -d '{ "first": "Jack", "last": "Sparrow" }' \ 'https://[PROJECT_ID].firebaseio.com/users/jack/name.json?print=silent'
โทรกลับ
รองรับโดย GET
เท่านั้น หากต้องการโทร REST จากเว็บเบราว์เซอร์ข้ามโดเมน คุณสามารถใช้ JSONP เพื่อรวมการตอบกลับในฟังก์ชันเรียกกลับ JavaScript เพิ่ม callback=
เพื่อให้ REST API ตัดข้อมูลที่ส่งคืนในฟังก์ชัน callback ที่คุณระบุ
<script> function gotData(data) { console.log(data); } </script> <script src="https://[PROJECT_ID].firebaseio.com/.json?callback=gotData"></script>
รูปแบบ
หากตั้งค่าเป็น export
เซิร์ฟเวอร์จะเข้ารหัสลำดับความสำคัญในการตอบกลับ
ข้อโต้แย้ง | วิธีที่เหลือ | คำอธิบาย |
---|---|---|
ส่งออก | รับ | รวมข้อมูลลำดับความสำคัญในการตอบกลับ |
curl 'https://[PROJECT_ID].firebaseio.com/.json?format=export'
ดาวน์โหลด
รองรับโดย GET
เท่านั้น หากคุณต้องการทริกเกอร์การดาวน์โหลดไฟล์ข้อมูลจากเว็บเบราว์เซอร์ ให้เพิ่ม download=
ซึ่งทำให้บริการ REST เพิ่มส่วนหัวที่เหมาะสมเพื่อให้เบราว์เซอร์รู้ว่าจะบันทึกข้อมูลลงในไฟล์
curl 'https://[PROJECT_ID].firebaseio/.json?download=myfilename.txt'
หมดเวลา
ใช้ตัวเลือกนี้เพื่อจำกัดระยะเวลาในการอ่านบนฝั่งเซิร์ฟเวอร์ หากคำขออ่านไม่เสร็จสิ้นภายในเวลาที่กำหนด คำขอจะยุติลงด้วยข้อผิดพลาด HTTP 400 สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณคาดว่าจะมีการถ่ายโอนข้อมูลเพียงเล็กน้อย และไม่ต้องการรอนานเกินไปในการดึงแผนผังย่อยที่อาจมีขนาดใหญ่ เวลาในการอ่านจริงอาจแตกต่างกันไปตามขนาดข้อมูลและการแคช
ระบุ timeouts
โดยใช้รูปแบบต่อไปนี้: 3ms
, 3s
หรือ 3min
พร้อมตัวเลขและหน่วย หากไม่ได้ระบุ ระบบจะใช้ timeout
สูงสุด 15min
หาก timeout
ไม่เป็นค่าบวกหรือเกินค่าสูงสุด คำขอจะถูกปฏิเสธโดยมีข้อผิดพลาด HTTP 400
writeSizeLimit
หากต้องการจำกัดขนาดของการเขียน คุณสามารถระบุพารามิเตอร์เคียวรี writeSizeLimit
เป็น tiny
(target=1s) small
(target=10s) medium
(target=30s) large
(target=60s) ฐานข้อมูลเรียลไทม์ประมาณขนาดของคำขอเขียนแต่ละรายการและยกเลิกคำขอที่จะใช้เวลานานกว่าเวลาเป้าหมาย
หากคุณระบุ unlimited
จะอนุญาตให้มีการเขียนขนาดใหญ่เป็นพิเศษ (ที่มีเพย์โหลดสูงสุด 256MB) ซึ่งอาจบล็อกคำขอที่ตามมาในขณะที่ฐานข้อมูลประมวลผลการดำเนินการปัจจุบัน ไม่สามารถยกเลิกการเขียนได้เมื่อถึงเซิร์ฟเวอร์
curl -X DELETE 'https://docs-examples.firebaseio.com/rest/delete-data.json?writeSizeLimit=medium'
คุณจะเห็นข้อความแสดงข้อผิดพลาดต่อไปนี้หากการเขียนมีขนาดใหญ่เกินไป:
Error: WRITE_TOO_BIG: Data to write exceeds the maximum size that can be modified with a single request.
นอกจากนี้ คุณยังสามารถตั้งค่า defaultWriteSizeLimit
สำหรับอินสแตนซ์ฐานข้อมูลทั้งหมดได้โดยใช้ Firebase CLI ขีดจำกัดนี้ใช้กับคำขอทั้งหมด รวมถึงคำขอจาก SDK ฐานข้อมูลใหม่จะถูกสร้างขึ้นโดยตั้งค่า defaultWriteSizeLimit
เป็น large
. คุณไม่สามารถตั้ง defaultWriteSizeLimit
ให้ tiny
โดยใช้ Firebase CLI
firebase database:settings:set defaultWriteSizeLimit large
สั่งโดย
ดูส่วนในคำแนะนำเกี่ยวกับ ข้อมูลที่สั่งซื้อ สำหรับข้อมูลเพิ่มเติม
LimitToFirst, LimitToLast, startAt, endAt, เท่ากับ
ดูส่วนในคำแนะนำเกี่ยวกับ การกรองข้อมูล สำหรับข้อมูลเพิ่มเติม
การสตรีมจาก REST API
ตำแหน่งข้อมูล Firebase REST รองรับโปรโตคอล EventSource / Server-Sent Events หากต้องการสตรีมการเปลี่ยนแปลงไปยังตำแหน่งเดียวในฐานข้อมูลเรียลไทม์ คุณต้องทำบางสิ่ง:
- ตั้งค่าส่วนหัว Accept ของลูกค้าเป็น
"text/event-stream"
- เคารพการเปลี่ยนเส้นทาง HTTP โดยเฉพาะรหัสสถานะ HTTP 307
- หากสถานที่นั้นต้องการสิทธิ์ในการอ่าน คุณต้องรวมพารามิเตอร์
auth
ด้วย
ในทางกลับกัน เซิร์ฟเวอร์จะส่งเหตุการณ์ที่มีชื่อเป็นสถานะของข้อมูลที่มีการเปลี่ยนแปลง URL ที่ร้องขอ โครงสร้างของข้อความเหล่านี้สอดคล้องกับโปรโตคอล EventSource
event: event name data: JSON encoded data payload
เซิร์ฟเวอร์อาจส่งเหตุการณ์ต่อไปนี้:
ใส่
ข้อมูลที่เข้ารหัส JSON เป็นออบเจ็กต์ที่มี 2 คีย์: เส้นทาง และ data คีย์เส้นทาง ชี้ไปยังตำแหน่งที่เกี่ยวข้องกับ URL คำขอ ไคลเอนต์ควรแทนที่ข้อมูลทั้งหมด ณ ตำแหน่งนั้นในแคชด้วย data
ปะ
ข้อมูลที่เข้ารหัส JSON เป็นออบเจ็กต์ที่มี 2 คีย์: เส้นทาง และ data คีย์เส้นทาง ชี้ไปยังตำแหน่งที่เกี่ยวข้องกับ URL คำขอ สำหรับแต่ละคีย์ใน data ไคลเอ็นต์ควรแทนที่คีย์ที่เกี่ยวข้องในแคชด้วยข้อมูลสำหรับคีย์นั้นในข้อความ
ให้มีชีวิตอยู่
ข้อมูลสำหรับเหตุการณ์นี้เป็น null
ไม่จำเป็นต้องดำเนินการใดๆ
ยกเลิก
ข้อผิดพลาดที่ไม่คาดคิดบางอย่างสามารถส่งเหตุการณ์ "ยกเลิก" และยุติการเชื่อมต่อได้ สาเหตุอธิบายไว้ในข้อมูลที่ให้ไว้สำหรับเหตุการณ์นี้ สาเหตุที่เป็นไปได้บางประการมีดังนี้: 1. กฎความปลอดภัยของฐานข้อมูลเรียลไทม์ Firebase ไม่อนุญาตให้อ่านในตำแหน่งที่ร้องขออีกต่อไป คำอธิบาย "ข้อมูล" สำหรับสาเหตุนี้คือ "สิทธิ์ถูกปฏิเสธ" 2. การเขียนทริกเกอร์สตรีมเมอร์เหตุการณ์ที่ส่งโครงสร้าง JSON ขนาดใหญ่ที่เกินขีดจำกัดของเรา 512MB `ข้อมูล` สำหรับสาเหตุนี้คือ "เพย์โหลดที่ระบุมีขนาดใหญ่เกินไป โปรดขอตำแหน่งที่มีข้อมูลน้อย"
auth_removed
ข้อมูลสำหรับเหตุการณ์นี้เป็นสตริงที่ระบุว่าข้อมูลรับรองหมดอายุแล้ว เหตุการณ์นี้จะถูกส่งเมื่อพารามิเตอร์ auth
ถูกต้องที่ให้มาใช้ไม่ได้อีกต่อไป
นี่คือตัวอย่างชุดเหตุการณ์ที่เซิร์ฟเวอร์อาจส่ง:
// Set your entire cache to {"a": 1, "b": 2} event: put data: {"path": "/", "data": {"a": 1, "b": 2}} // Put the new data in your cache under the key 'c', so that the complete cache now looks like: // {"a": 1, "b": 2, "c": {"foo": true, "bar": false}} event: put data: {"path": "/c", "data": {"foo": true, "bar": false}} // For each key in the data, update (or add) the corresponding key in your cache at path /c, // for a final cache of: {"a": 1, "b": 2, "c": {"foo": 3, "bar": false, "baz": 4}} event: patch data: {"path": "/c", "data": {"foo": 3, "baz": 4}}
ลำดับความสำคัญ
ข้อมูลลำดับความสำคัญสำหรับสถานที่สามารถอ้างอิงได้ด้วย "รายการย่อยเสมือน" ชื่อ .priority
คุณสามารถอ่านลำดับความสำคัญด้วยคำขอ GET
และเขียนด้วยคำขอ PUT
ตัวอย่างเช่น คำขอต่อไปนี้ดึงข้อมูลลำดับความสำคัญของ users/tom
:
curl 'https://[PROJECT_ID].firebaseio/users/tom/.priority.json'
หากต้องการเขียนลำดับความสำคัญและข้อมูลพร้อมกัน คุณสามารถเพิ่ม .priority
ชายน์ลงในเพย์โหลด JSON ได้:
curl -X PUT -d '{"name": {"first": "Tom"}, ".priority": 1.0}' \ 'https://[PROJECT_ID].firebaseio/users/tom.json'
หากต้องการเขียนลำดับความสำคัญและค่าดั้งเดิม (เช่น สตริง) ในเวลาเดียวกัน คุณสามารถเพิ่มรายการย่อย .priority
และใส่ค่าดั้งเดิมลงในรายการ .value
ได้:
curl -X PUT -d '{".value": "Tom", ".priority": 1.0}' \ 'https://[PROJECT_ID].firebaseio/users/tom/name/first.json'
สิ่งนี้เขียนว่า "Tom"
โดยมีลำดับความสำคัญเป็น 1.0
สามารถรวมลำดับความสำคัญไว้ที่ระดับความลึกใดก็ได้ในเพย์โหลด JSON
ค่าเซิร์ฟเวอร์
คุณสามารถเขียนค่าเซิร์ฟเวอร์ ณ ตำแหน่งหนึ่งได้โดยใช้ค่าตัวยึดตำแหน่งซึ่งเป็นออบเจ็กต์ที่มีคีย์ .sv
เพียงคีย์เดียว ค่าสำหรับคีย์นั้นคือประเภทของค่าเซิร์ฟเวอร์ที่คุณต้องการตั้งค่า ตัวอย่างเช่น คำขอต่อไปนี้จะตั้งค่าของโหนดเป็นการประทับเวลาปัจจุบันของเซิร์ฟเวอร์ Firebase:
curl -X PUT -d '{".sv": "timestamp"}' \ 'https://[PROJECT_ID].firebaseio/users/tom/startedAtTime.json'
คุณยังสามารถเขียนลำดับความสำคัญโดยใช้ค่าเซิร์ฟเวอร์ โดยใช้เส้นทาง "ลูกเสมือน" ที่ระบุไว้ข้างต้น
ค่าเซิร์ฟเวอร์ที่รองรับได้แก่:
ค่าเซิร์ฟเวอร์ | |
---|---|
การประทับเวลา | เวลาตั้งแต่ยุค UNIX มีหน่วยเป็นมิลลิวินาที |
เพิ่มขึ้น | ระบุค่าเดลต้าจำนวนเต็มหรือทศนิยม ในรูปแบบ { ".sv": {"increment": <delta_value> }} ซึ่งใช้เพื่อเพิ่มค่าฐานข้อมูลปัจจุบันแบบอะตอมมิก หากยังไม่มีข้อมูล การอัพเดตจะตั้งค่าข้อมูลเป็นค่าเดลต้า หากค่าเดลต้าหรือข้อมูลที่มีอยู่เป็นตัวเลขทศนิยม ค่าทั้งสองจะถูกตีความว่าเป็นตัวเลขทศนิยมและนำไปใช้กับส่วนหลังเป็นค่าสองเท่า เลขคณิตคู่และการแสดงค่าสองเท่าเป็นไปตามซีแมนทิกส์ IEEE 754 หากมีการล้นของจำนวนเต็มบวก/ลบ ผลรวมจะคำนวณเป็นสองเท่า |
การดึงและอัปเดตกฎความปลอดภัยของฐานข้อมูลเรียลไทม์ Firebase
REST API ยังสามารถใช้เพื่อดึงข้อมูลและอัปเดต กฎความปลอดภัยของฐานข้อมูลเรียลไทม์ Firebase สำหรับโปรเจ็กต์ Firebase ของคุณ คุณจะต้องมีความลับของโปรเจ็กต์ Firebase ซึ่งอยู่ใต้แผง บัญชีบริการ ของการตั้งค่าโปรเจ็กต์ Firebase
curl 'https://[PROJECT_ID].firebaseio/.settings/rules.json?auth=FIREBASE_SECRET' curl -X PUT -d '{ "rules": { ".read": true } }' 'https://[PROJECT_ID].firebaseio/.settings/rules.json?auth=FIREBASE_SECRET'
ตรวจสอบคำขอ
ตามค่าเริ่มต้น คำขอ REST จะดำเนินการโดยไม่มีการรับรองความถูกต้อง และจะสำเร็จก็ต่อเมื่อ กฎฐานข้อมูลเรียลไทม์ อนุญาตให้เข้าถึงข้อมูลแบบอ่านหรือเขียนแบบสาธารณะ หากต้องการตรวจสอบคำขอของคุณ ให้ใช้พารามิเตอร์การค้นหา access_token=
หรือ auth=
เรียนรู้เพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์ผ่าน REST API ใน การตรวจสอบสิทธิ์คำขอ REST
เงื่อนไขข้อผิดพลาด
Firebase Database REST API สามารถส่งคืนรหัสข้อผิดพลาดต่อไปนี้ได้
รหัสสถานะ HTTP | |
---|---|
400 คำขอไม่ถูกต้อง | เงื่อนไขข้อผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้:
|
401 ไม่ได้รับอนุญาต | เงื่อนไขข้อผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้:
|
404 ไม่พบ | ไม่พบฐานข้อมูลเรียลไทม์ที่ระบุ |
500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ | เซิร์ฟเวอร์ส่งคืนข้อผิดพลาด ดูข้อความแสดงข้อผิดพลาดสำหรับรายละเอียดเพิ่มเติม |
503 บริการไม่พร้อมใช้งาน | ฐานข้อมูลเรียลไทม์ Firebase ที่ระบุไม่พร้อมใช้งานชั่วคราว ซึ่งหมายความว่าไม่ได้พยายามร้องขอ |
412 เงื่อนไขเบื้องต้นล้มเหลว | ค่า ETag ที่ระบุของคำขอในส่วนหัว if-match ไม่ตรงกับค่าของเซิร์ฟเวอร์ |
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2024-03-20 UTC