การใช้ API
คุณจะใช้ URL ของฐานข้อมูลเรียลไทม์ของ Firebase เป็นปลายทาง REST ได้ เพียงเท่านี้
เพิ่ม .json
ต่อท้าย URL และส่งคำขอ
จากไคลเอ็นต์ HTTPS ที่คุณชื่นชอบ
ต้องใช้ HTTPS Firebase จะตอบสนองต่อการเข้าชมที่เข้ารหัสเท่านั้นเพื่อให้ข้อมูลของคุณยังคงปลอดภัย
GET - การอ่านข้อมูล
ข้อมูลจาก Realtime Database สามารถอ่านได้ด้วยการออก HTTP
คำขอ GET
ไปยังปลายทาง ตัวอย่างต่อไปนี้
จะสาธิตวิธีการเรียกข้อมูลผู้ใช้
ชื่อที่คุณบันทึกไว้ใน Realtime Database ก่อนหน้านี้
curl 'https://[PROJECT_ID].firebaseio.com/users/jack/name.json'
คำขอที่สำเร็จจะระบุด้วย 200 OK
HTTP
รหัสสถานะ การตอบกลับจะมีข้อมูลที่เชื่อมโยงกับ
เส้นทางในคำขอ GET
{ "first": "Jack", "last": "Sparrow" }
PUT - การเขียนข้อมูล
คุณเขียนข้อมูลได้ด้วยคำขอ PUT
curl -X PUT -d '{ "first": "Jack", "last": "Sparrow" }' \ 'https://[PROJECT_ID].firebaseio.com/users/jack/name.json'
คำขอที่สำเร็จจะระบุด้วย 200 OK
HTTP
รหัสสถานะ การตอบกลับจะมีข้อมูลที่ระบุไว้ใน
คำขอ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 ในการบันทึกข้อมูล
ETag ของ Firebase
Firebase ETag คือตัวระบุที่ไม่ซ้ำกันสำหรับข้อมูลปัจจุบันในตำแหน่งที่ระบุ หาก
ข้อมูลเปลี่ยนแปลง ณ สถานที่นั้น และ ETag จะเปลี่ยนไปด้วย ต้องระบุ ETag ของ Firebase ใน
สำหรับคำขอ REST เริ่มต้น (โดยทั่วไปคือ
GET
แต่เป็นอะไรก็ได้นอกเหนือจาก PATCH
)
curl -i 'https://[PROJECT_ID].firebaseio.com/posts/12345/upvotes.json' -H 'X-Firebase-ETag: true'
if-match
เงื่อนไข if-match
ระบุค่า ETag สําหรับข้อมูลที่คุณต้องการอัปเดต
หากคุณใช้เงื่อนไข Realtime Database จะดําเนินการให้เสร็จสิ้นเฉพาะคำขอที่ ETag ระบุไว้ใน
คำขอเขียนตรงกับ ETag ของข้อมูลที่มีอยู่ในฐานข้อมูล ดึงข้อมูล
ETag ในตำแหน่งที่มีคำขอ ETag ของ Firebase หากต้องการเขียนทับตำแหน่ง
null โปรดใช้ 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: true" | ETag ตรงกับ if_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 ยอมรับพารามิเตอร์การค้นหาต่อไปนี้และ มีดังนี้
access_token
รองรับคำขอทุกประเภท ตรวจสอบสิทธิ์คำขอนี้เพื่ออนุญาต สิทธิ์เข้าถึงข้อมูลที่ได้รับการปกป้องโดย Firebase Realtime Database Security Rules โปรดดู โปรดดูรายละเอียดในเอกสารการตรวจสอบสิทธิ์ REST
curl 'https://[PROJECT_ID].firebaseio/users/jack/name.json?access_token=CREDENTIAL'
ตื้น
นี่คือฟีเจอร์ขั้นสูงที่ออกแบบมาเพื่อช่วยให้คุณใช้งานได้กับ
ชุดข้อมูลโดยไม่จำเป็นต้องดาวน์โหลดทุกอย่าง ตั้งค่านี้เป็น
true
เพื่อจำกัดความลึกของข้อมูลที่แสดงผล
ที่สถานที่แห่งหนึ่ง หากข้อมูลในตำแหน่งเป็น JSON Primitive
(สตริง ตัวเลข หรือบูลีน) ระบบจะแสดงค่าของสูตร หาก
สแนปชอตข้อมูลที่ตำแหน่งนั้นคือออบเจ็กต์ JSON
ค่าสำหรับแต่ละคีย์จะถูกตัดเหลือ true
อาร์กิวเมนต์ | เมธอด REST | คำอธิบาย |
---|---|---|
ตื้น | รับ | จํากัดความลึกของคําตอบ |
curl 'https://[PROJECT_ID].firebaseio/.json?shallow=true'
โปรดทราบว่า shallow
ไม่สามารถผสมกับคำค้นหาอื่นๆ
พารามิเตอร์
พิมพ์
จัดรูปแบบข้อมูลที่แสดงผลในการตอบสนองจากเซิร์ฟเวอร์
อาร์กิวเมนต์ | เมธอด REST | คำอธิบาย |
---|---|---|
น่ารัก | ดาวน์โหลด เผยแพร่ โพสต์ แก้ไข ลบ | ดูข้อมูลในรูปแบบที่มนุษย์อ่านได้ |
เงียบ | ดาวน์โหลด เผยแพร่ โพสต์ แพตช์ |
ใช้เพื่อระงับเอาต์พุตจากเซิร์ฟเวอร์เมื่อเขียนข้อมูล
การตอบกลับที่ได้จะว่างเปล่าและระบุด้วย
รหัสสถานะ HTTP 204 No Content
|
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'
Callback
รองรับโดย GET
เท่านั้น วิธีเรียก REST จากเว็บเบราว์เซอร์
ข้ามโดเมน คุณสามารถใช้ JSONP เพื่อรวมการตอบกลับไว้ใน JavaScript
ฟังก์ชัน Callback เพิ่ม callback=
เพื่อรวม REST API
ข้อมูลที่ส่งคืนในฟังก์ชัน Callback ที่คุณระบุ
<script> function gotData(data) { console.log(data); } </script> <script src="https://[PROJECT_ID].firebaseio.com/.json?callback=gotData"></script>
รูปแบบ
หากตั้งค่าเป็น export
เซิร์ฟเวอร์จะเข้ารหัสลำดับความสำคัญใน
คำตอบ
อาร์กิวเมนต์ | เมธอด REST | คำอธิบาย |
---|---|---|
ส่งออก | รับ | ใส่ข้อมูลลำดับความสำคัญในการตอบกลับ |
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
เป็น
tiny
(target=1 วินาที), small
(target=10 วินาที),
medium
(target=30 วินาที), large
(target=60 วินาที)
Realtime Database จะประมาณขนาดคำขอเขียนแต่ละรายการและล้มเลิก
คำขอที่ใช้เวลานานกว่าเวลาเป้าหมาย
หากระบุ unlimited
การเขียนที่มีขนาดใหญ่มาก (มีเพย์โหลดสูงสุด 256 MB)
ได้รับอนุญาต ซึ่งอาจเป็นการบล็อกคำขอต่อๆ มาขณะที่ฐานข้อมูลประมวลผล
การดำเนินการปัจจุบัน ยกเลิกการเขียนไม่ได้เมื่อไปถึงเซิร์ฟเวอร์แล้ว
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
orderBy
โปรดดูส่วนในคำแนะนำเรื่อง ข้อมูลตามลำดับ เพื่อดูข้อมูลเพิ่มเติม
linkToFirst, LimitToLast, startAt, endAt, equalTo
โปรดดูส่วนในคำแนะนำเรื่อง กรองข้อมูลเพื่อ ข้อมูลเพิ่มเติม
การสตรีมจาก REST API
ปลายทาง REST ของ Firebase รองรับฟังก์ชัน EventSource / เหตุการณ์เซิร์ฟเวอร์ที่ส่ง หากต้องการสตรีมการเปลี่ยนแปลงไปยังสถานที่แห่งเดียวใน Realtime Database คุณต้องดำเนินการบางอย่าง
-
ตั้งค่าส่วนหัว "ยอมรับ" ของลูกค้าเป็น
"text/event-stream"
- ดำเนินการตามการเปลี่ยนเส้นทาง HTTP โดยเฉพาะรหัสสถานะ HTTP 307
-
หากตำแหน่งต้องการสิทธิ์ในการอ่าน คุณต้องใส่
พารามิเตอร์
auth
ในทางกลับกัน เซิร์ฟเวอร์จะส่งเหตุการณ์ที่มีชื่อเป็นสถานะของข้อมูลที่
มีการเปลี่ยนแปลง URL ที่ขอ โครงสร้างของข้อความเหล่านี้สอดคล้องกับ
โปรโตคอล EventSource
event: event name data: JSON encoded data payload
เซิร์ฟเวอร์อาจส่งเหตุการณ์ต่อไปนี้
ใส่
ข้อมูลที่เข้ารหัสด้วย JSON คือออบเจ็กต์ที่มี 2 คีย์ ได้แก่ path และ data ประเด็นสำคัญของเส้นทางไปยัง ตำแหน่งที่สัมพันธ์กับ URL ของคำขอ ไคลเอ็นต์ควรแทนที่ ข้อมูล ณ ตำแหน่งนั้นในแคชด้วย data
แพตช์
ข้อมูลที่เข้ารหัสด้วย JSON คือออบเจ็กต์ที่มี 2 คีย์ ได้แก่ path และ data ประเด็นสำคัญของเส้นทางไปยัง ตำแหน่งที่สัมพันธ์กับ URL ของคำขอ สำหรับแต่ละคีย์ใน ข้อมูล ไคลเอ็นต์ควรแทนที่ คีย์ที่เกี่ยวข้องในแคชที่มีข้อมูลสำหรับคีย์นั้นในข้อความ
Keep-alive
ข้อมูลสำหรับเหตุการณ์นี้คือ null
คุณไม่จำเป็นต้องดำเนินการใดๆ
ยกเลิก
ข้อผิดพลาดที่ไม่คาดคิดบางอย่างอาจส่งเหตุการณ์ "ยกเลิก" และสิ้นสุดการเชื่อมต่อ สาเหตุมีอยู่ในข้อมูลที่ให้ไว้สำหรับเหตุการณ์นี้ สาเหตุที่เป็นไปได้มีดังนี้ ดังต่อไปนี้: 1. Firebase Realtime Database Security Rules ไม่อนุญาตให้อ่านในตำแหน่งที่ขออีกต่อไป คำอธิบาย "ข้อมูล" สำหรับสาเหตุนี้คือ "สิทธิ์ถูกปฏิเสธ" 2. การเขียนทริกเกอร์สตรีมเมอร์เหตุการณ์ที่ส่งต้นไม้ JSON ขนาดใหญ่ซึ่งเกินขีดจำกัดของเรา 512 MB "ข้อมูล" สำหรับสาเหตุนี้คือ "เพย์โหลดที่ระบุมีขนาดใหญ่เกินไป โปรดขอ โดยใช้อินเทอร์เน็ตน้อยลง"
การตรวจสอบสิทธิ์_ถูกยกเลิก
ข้อมูลสำหรับเหตุการณ์นี้คือสตริงที่ระบุว่าข้อมูลเข้าสู่ระบบ
หมดอายุแล้ว ระบบจะส่งเหตุการณ์นี้เมื่อ 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
เดี่ยว ค่าของคีย์ดังกล่าวคือ
ประเภทค่าเซิร์ฟเวอร์ที่ต้องการกำหนด ตัวอย่างเช่น URL ต่อไปนี้
กำหนดค่าของโหนดเป็นค่าปัจจุบันของเซิร์ฟเวอร์ Firebase
การประทับเวลา:
curl -X PUT -d '{".sv": "timestamp"}' \ 'https://[PROJECT_ID].firebaseio/users/tom/startedAtTime.json'
นอกจากนี้ คุณยังสามารถเขียนลำดับความสำคัญโดยใช้ค่าของเซิร์ฟเวอร์ โดยใช้ "เด็กแบบเสมือนจริง" เส้นทางที่ระบุไว้ข้างต้น
ค่าเซิร์ฟเวอร์ที่รองรับมีดังนี้
ค่าเซิร์ฟเวอร์ | |
---|---|
การประทับเวลา | เวลาตั้งแต่ UNIX Epoch ในหน่วยมิลลิวินาที |
เพิ่มขึ้น | ระบุจำนวนเต็มหรือค่าเดลต้าของจุดลอยตัวในรูปแบบ
{ ".sv": {"increment": <delta_value> }} โดยปรมาณู
เพิ่มค่าฐานข้อมูลปัจจุบัน หากยังไม่มีข้อมูล ระบบจะตั้งค่าการอัปเดต
ลงในค่าเดลต้า หากค่าเดลต้าหรือข้อมูลที่มีอยู่เป็นแบบลอย
จำนวนจุด ทั้ง 2 ค่าจะได้รับการแปลค่าเป็นจำนวนทศนิยม และนำไปใช้ในหน้า
เป็นเลขทศนิยม เลขคณิตคู่และการแทนค่าคู่จะตามมา
อรรถศาสตร์ IEEE 754 หากเกินจำนวนเต็มบวก/ลบ ระบบจะคำนวณผลรวม
เป็นทศนิยม |
กำลังเรียกและอัปเดต Firebase Realtime Database Security Rules
นอกจากนี้ คุณยังใช้ REST API เพื่อเรียกและอัปเดต Firebase Realtime Database Security Rules สำหรับ โปรเจ็กต์ 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 โดยไม่มีการตรวจสอบสิทธิ์ และจะสำเร็จก็ต่อเมื่อ
กฎ Realtime Database ให้สิทธิ์การอ่านหรือเขียนแบบสาธารณะสำหรับ
ข้อมูลดังกล่าว ในการตรวจสอบสิทธิ์คำขอของคุณ ให้ใช้
พารามิเตอร์การค้นหา access_token=
หรือ auth=
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์ผ่าน REST API ใน ตรวจสอบสิทธิ์คำขอ REST
เงื่อนไขข้อผิดพลาด
Firebase Database REST API สามารถแสดงรหัสข้อผิดพลาดต่อไปนี้
รหัสสถานะ HTTP | |
---|---|
400 คำขอไม่ถูกต้อง |
เงื่อนไขข้อผิดพลาดข้อใดข้อหนึ่งต่อไปนี้
|
401 ไม่ได้รับอนุญาต |
เงื่อนไขข้อผิดพลาดข้อใดข้อหนึ่งต่อไปนี้
|
404 ไม่พบ | ไม่พบ Realtime Database ที่ระบุ |
500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ | เซิร์ฟเวอร์แสดงผลข้อผิดพลาด ดูรายละเอียดเพิ่มเติมในข้อความแสดงข้อผิดพลาด รายละเอียด |
503 ไม่พร้อมให้บริการ | ฐานข้อมูลเรียลไทม์ของ Firebase ที่ระบุไม่พร้อมใช้งานชั่วคราว ซึ่งหมายความว่าไม่มีการพยายามส่งคำขอ |
412 เงื่อนไขที่กำหนดไว้ล่วงหน้าล้มเหลว | ค่า ETag ที่ระบุในส่วนหัว if-match ไม่ตรงกับค่าของเซิร์ฟเวอร์ |