Ông Lehenbauer dĩ nhiên là bậc thầy về mọi thứ Firebase, vì vậy hãy lắng nghe ông ấy. ;) Tuy nhiên, chủ đề cụ thể này là một trong những tôi đã được lao động hơn trong một vài tuần nay.
Dưới đây là một vài trong số những suy nghĩ của tôi, để nâng cao "Chạy một máy chủ riêng biệt" và "Client-side truy vấn" phản ứng:
ElasticSearch (một kịch bản Node.js)
Với một kịch bản node.js trên máy chủ, bạn có thể tích hợp ElasticSearch và cung cấp một số tìm kiếm nội dung vững chắc trong chưa đầy một giờ. Dưới đây là một bài viết trên blog và một lib mà làm cho nó dễ dàng hơn: https://www.firebase.com/blog/2014-01-02-queries-part-two.html
cache/thắc mắc chung
Đây có thể được xử lý bởi một quá trình máy chủ/cron mà đọc bảng và bản sao dữ liệu. Ví dụ: giả sử tôi muốn hiển thị "không khả dụng/có sẵn" cho tên đăng nhập của người dùng trong quá trình đăng ký, nhưng lưu trữ hồ sơ người dùng theo một ID duy nhất khác nhau vì một số lý do phức tạp.Cron/server của tôi có thể đọc tất cả các bản ghi từ bảng người dùng, sau đó chèn chúng vào một bảng khác được lưu trữ bằng địa chỉ email, với giá trị ID hồ sơ của người dùng (hoặc bất kỳ dữ liệu nào khác mà tôi có thể muốn biết) .
Cách tiếp cận dữ liệu trùng lặp này sắp xếp kỹ thuật lưu vào bộ nhớ cache thủ công và là thực tiễn phổ biến trong môi trường Không có SQL; chúng tôi đang kinh doanh không gian lưu trữ (được cho là rẻ và có sẵn) cho các quy trình tốc độ và đơn giản hóa.
truy vấn tùy chỉnh (sử dụng một hàng đợi)
truy vấn tuỳ chỉnh có thể được gửi qua XHR (ajax) trực tiếp đến một máy chủ, có thể làm lao động khổ sai và trả lại kết quả tốt hơn. Cách khác, bạn có thể sử dụng Firebase để kết nối với máy chủ back-end bằng cách sử dụng hàng đợi.
Khách hàng đặt yêu cầu truy vấn dưới dạng JSON vào bảng Firebase đặc biệt được gọi là queue
và đang chờ phản hồi.
Các máy chủ lắng nghe cho queue.on('child_added', ...)
và phục vụ dữ liệu trở lại sử dụng `queue_record.child ('phản ứng', ... dữ liệu ở đây ...)
này có một số ưu điểm tốt đẹp. Đối với một, bất kỳ số lượng các máy chủ có thể lắng nghe và phục vụ phản ứng, làm cho cân bằng tải một cách dễ dàng. Mã cho việc này rất đơn giản để thiết lập và covered in another thread tại đây trong SO.
Hy vọng điều này hữu ích!
Michael này, có nhóm của bạn thực hiện bất kỳ bước phát triển mới với truy vấn? –
Không có tính năng mới đáng chú ý. Bạn có thể quan tâm đến bài đăng trên blog này mà chúng tôi vừa mới đưa ra, mô tả các phương pháp hay nhất để cấu trúc dữ liệu của bạn cho Firebase, do chúng tôi không hỗ trợ truy vấn giống SQL: https://www.firebase.com/blog/2013- 04-12-denormalizing-is-normal.html –
Hiện tại, có một bài đăng trên blog và một thư viện mới cho phương pháp "Chạy với tư cách máy chủ riêng biệt" cho thấy việc tích hợp ElasticSearch: https: // www dễ dàng như thế nào. firebase.com/blog/2014-01-02-queries-part-two.html – Kato