API ของ REST สำหรับฐานข้อมูลของ Firebase

การใช้ 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 คำขอไม่ถูกต้อง

เงื่อนไขข้อผิดพลาดข้อใดข้อหนึ่งต่อไปนี้

  • แยกวิเคราะห์ข้อมูล PUT หรือ POST ไม่ได้
  • ไม่มีข้อมูล PUT หรือ POST
  • คำขอพยายามจะเข้าถึงข้อมูล PUT หรือ POST ที่มีขนาดใหญ่เกินไป
  • การเรียก API ของ REST มีชื่อย่อยที่ไม่ถูกต้องเป็นส่วนหนึ่งของเส้นทาง
  • เส้นทางการเรียก API ของ REST ยาวเกินไป
  • คำขอมีค่าเซิร์ฟเวอร์ที่ไม่รู้จัก
  • ดัชนีสำหรับการค้นหาไม่ได้กำหนดไว้ใน Firebase Realtime Database Security Rules
  • คำขอไม่สนับสนุนพารามิเตอร์การค้นหาที่ระบุ
  • คำขอจะผสมพารามิเตอร์การค้นหาเข้ากับคำขอ GET แบบตื้น
401 ไม่ได้รับอนุญาต

เงื่อนไขข้อผิดพลาดข้อใดข้อหนึ่งต่อไปนี้

  • โทเค็นการตรวจสอบสิทธิ์หมดอายุแล้ว
  • โทเค็นการตรวจสอบสิทธิ์ที่ใช้ในคำขอไม่ถูกต้อง
  • การตรวจสอบสิทธิ์ด้วย Access_token ล้มเหลว
  • คำขอนี้ละเมิด Firebase Realtime Database Security Rules
404 ไม่พบ ไม่พบ Realtime Database ที่ระบุ
500 ข้อผิดพลาดภายในเซิร์ฟเวอร์ เซิร์ฟเวอร์แสดงผลข้อผิดพลาด ดูรายละเอียดเพิ่มเติมในข้อความแสดงข้อผิดพลาด รายละเอียด
503 ไม่พร้อมให้บริการ ฐานข้อมูลเรียลไทม์ของ Firebase ที่ระบุไม่พร้อมใช้งานชั่วคราว ซึ่งหมายความว่าไม่มีการพยายามส่งคำขอ
412 เงื่อนไขที่กำหนดไว้ล่วงหน้าล้มเหลว ค่า ETag ที่ระบุในส่วนหัว if-match ไม่ตรงกับค่าของเซิร์ฟเวอร์