มีวิธีกำหนดเวลาการแก้ไขฐานข้อมูล firebase หรือไม่?

ฉันกำลังพยายามสร้างการแก้ไขฐานข้อมูลใน firebase โดยอัตโนมัติ มีวิธีทำเช่นนั้นบนฝั่งเซิร์ฟเวอร์หรือไม่? ฉันยังใหม่ต่อการพัฒนา iOS และรวดเร็ว ดังนั้นความช่วยเหลือใดๆ จะได้รับการชื่นชมอย่างมาก

นอกจากนี้ ฉันได้ลองใช้ Zapier แล้ว แต่บริการไม่เฉพาะเจาะจงเพียงพอสำหรับความต้องการของฉัน


person ndduong    schedule 05.06.2016    source แหล่งที่มา
comment
ข้ามโพสต์: groups.google.com/forum/#! หัวข้อ/firebase-talk/4P5u2MLx-TU   -  person Frank van Puffelen    schedule 05.06.2016


คำตอบ (1)


ใช่ - Firebase มีชุดตัวเลือกที่ค่อนข้างยืดหยุ่นสำหรับการอัปเดตฝั่งเซิร์ฟเวอร์ และง่ายพอที่จะกำหนดเวลา cronjob เพื่อเชื่อมต่อกับ firebase และดำเนินการอัปเดตหรือแก้ไขตามกำหนดเวลาบางอย่าง แนวทางทั่วไปที่สุดคือการใช้ REST API เพื่อดำเนินการอัปเดตของคุณ แม้ว่าจะมีไลบรารีเฉพาะเพื่อรองรับโหนดและแพลตฟอร์มอื่นๆ ก็ตาม เป็นเรื่องที่ควรค่าแก่การทราบถึงการอัปเกรดหลักล่าสุดเป็นเวอร์ชัน 3 ของ Firebase ซึ่งทำให้เกิดการเปลี่ยนแปลงที่สำคัญบางประการ อาจทำให้ตัวอย่างเก่าๆ สับสนกับ API ใหม่ได้ง่าย ดังนั้น ให้คำนึงถึงความแตกต่างเมื่อคุณรวบรวมครั้งแรก ตัวอย่างการพิสูจน์แนวคิด

ฉันคิดว่าคุณกำลังมองหาการทำงานบนเซิร์ฟเวอร์ของคุณเอง แม้ว่าอีกทางเลือกหนึ่งคือการใช้สภาพแวดล้อมการโฮสต์คอนเทนเนอร์ (Google Apps ฯลฯ )

หากคุณมีเซิร์ฟเวอร์ของตัวเองและต้องการผสานรวม ฉันขอแนะนำให้เริ่มต้นด้วย: https://firebase.google.com/docs/server/setup#prerequisites

ถ้าอย่างนั้นอาจดูอย่างรวดเร็ว:

https://firebase.googleblog.com/docs/web/quickstart.html

และ

https://www.firebase.com/docs/rest/

หากคุณเพิ่งเริ่มต้น ฉันขอแนะนำงานแรกคือตรวจสอบสิทธิ์ ดึงข้อมูล และอัปเดตบันทึก Firebase คุณสามารถกำหนดค่าคีย์การรับรองความถูกต้องของเซิร์ฟเวอร์ผ่านคอนโซล FB และใช้สิ่งเหล่านี้เป็นส่วนหนึ่งของกระบวนการตรวจสอบความถูกต้องของคุณ

หากคุณไม่คุ้นเคยกับ JWT ก็คุ้มค่าที่จะใช้เวลาเล็กน้อยเพื่อเร่งความเร็วในเรื่องนี้และดำเนินการตามตัวอย่างที่ https://www.firebase.com/docs/rest/guide/user-auth.html

เพิ่มเติมเกี่ยวกับความคิดเห็นของคุณ: ดังนั้นแนวทางแรกที่นึกถึงคือการรันงานที่กำหนดเวลาไว้บางประเภทใน Cron ซึ่งจะเชื่อมต่อโดยใช้ REST API ดำเนินการค้นหาข้อมูลที่มีอยู่เพื่อระบุบันทึกที่ต้องการการอัปเดต และลบหรือแก้ไขข้อมูลเหล่านั้น

ให้เพิ่มอีกเล็กน้อยว่าคุณสามารถขยายแนวทางนี้ได้โดยไม่ต้องรันในช่วงเวลาที่เกิดซ้ำซึ่งน้อยกว่าเวลาการลบขั้นต่ำที่คาดไว้ คุณสามารถเรียกใช้ตัวกำหนดตารางเวลาเพื่อล้างข้อมูลในระยะเวลาที่นานขึ้น แต่กรองผลลัพธ์ของคุณไปยังไคลเอนต์ เพื่อที่คุณจะได้ไม่ รวมถึงข้อมูลเก่า มีการพูดคุยถึงแนวทางนี้เล็กน้อยที่ แชท Firebase - ลบข้อความเก่า

การได้รับโซลูชันที่เหมาะสมสำหรับสถานการณ์เฉพาะของคุณจะขึ้นอยู่กับว่าคุณจัดโครงสร้างข้อมูลของคุณได้ดีเพียงใดซึ่งอาจขัดกับสัญชาตญาณได้ โดยเฉพาะสำหรับผู้ใช้ที่มาจากพื้นหลัง RDBMS

อาจมีความโน้มเอียงที่จะรักษาข้อมูลให้บางและปราศจากการปนเปื้อนด้วยข้อมูลเก่าที่ไม่เกี่ยวข้อง แต่ Firebase ค่อนข้างดีในการจัดการข้อมูลที่มีโครงสร้างขั้นต่ำขนาดใหญ่ และค่าใช้จ่ายของการขยายตัวนี้อาจไม่เลวร้ายอย่างที่คุณคิด

หากการกรองนั้นไม่เพียงพอและคุณไม่มีเซิร์ฟเวอร์ที่คุณสามารถ CRON ในกระบวนการล้างข้อมูลได้ คุณสามารถใช้กระบวนการของผู้ปฏิบัติงาน firebase ใน Node หรือที่คล้ายกัน และให้สิ่งนี้ทำงานบนบริการคอนเทนเนอร์ เช่น Heroku หรือ Google Apps ดู การแจ้งเตือนแบบพุชของ Firebase - ผู้ปฏิบัติงานโหนด เพื่อดูแนวคิดบางประการเกี่ยวกับวิธีการแก้ไขปัญหานี้ เมื่อ ถาม Google แนะนำว่าพวกเขาไม่ได้ ไม่ได้ให้คำแนะนำว่าสถานที่ใดดีที่สุดในการโฮสต์บริการของผู้ปฏิบัติงาน แต่พวกเขาได้กล่าวถึงทั้ง Google App Engine และ Heroku

อีกวิธีหนึ่งหากคุณไม่ต้องการใช้และโฮสต์กระบวนการเฝ้าดู/ผู้ปฏิบัติงาน ก็คือการรวมโค้ดบางส่วนไว้ในไคลเอนต์ที่จะตรวจสอบและลบข้อมูลเก่าออกเป็นระยะๆ

คิว firebase นั้นยอดเยี่ยมมาก แต่อาจจะเกินความจำเป็นไปเล็กน้อยสำหรับการหมดอายุของเก่า ข้อมูล.

person Peter Scott    schedule 05.06.2016
comment
สวัสดี ขอบคุณสำหรับคำตอบ ฉันสามารถตรวจสอบสิทธิ์ผู้ใช้ อัปเดต และดึงข้อมูลได้ อย่างไรก็ตาม ฉันไม่รู้ว่าจะลบข้อมูลออกจากฐานข้อมูลโดยอัตโนมัติได้อย่างไร สมมติว่าผู้ใช้ต้องการให้ลบข้อมูล 'x' ภายใน 1 ชั่วโมง ฉันต้องการทำให้เป็นอัตโนมัติเพื่อให้ Firebase ลบออกภายใน 1 ชั่วโมงโดยที่ฉันไม่ต้องดำเนินการด้วยตนเอง ฉันยังไม่เคยทำ REST API มาก่อนและยังไม่ได้ตั้งค่าเซิร์ฟเวอร์ของตัวเอง ดังนั้นวิธีที่ง่ายที่สุดในการทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติจะได้รับการชื่นชมอย่างมาก - person ndduong; 05.06.2016