2015-11-16 26 views
9

Điều này post nói rằng FireBase sẽ gặp sự cố khi một nút riêng lẻ bắt đầu có từ 1 đến 10 triệu trẻ em. Làm cách nào một người dùng nên xử lý Người dùng trong ứng dụng nếu chúng tôi có hơn 10 triệu người? Trong tất cả các ví dụ tôi mặc dù Người dùng chỉ đơn giản là trẻ em của một nút "Người dùng".Giới hạn khả năng mở rộng Firebase

+1

Tôi đã viết câu trả lời bên dưới. Nhưng mô hình hóa dữ liệu cho NoSQL là một chủ đề vô cùng rộng lớn, không dễ trả lời ở đây trên StackOverflow. Một mồi tốt về chủ đề: https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/ –

Trả lời

16

Firebase không lý tưởng để xử lý danh sách các mục dài. Vấn đề với những danh sách dài này không lưu trữ nhiều dữ liệu vì nó đang truy cập dữ liệu.

Bất cứ khi nào bạn truy cập danh sách (ví dụ: ref.child('users').on(...) Firebase phải xem xét tất cả các mục trong danh sách đó trên máy chủ; ngay cả khi bạn chỉ tải xuống một vài người dùng (.limitToLast(10)), nó phải xem xét từng người dùng.

Nhưng miễn là bạn không bao giờ cố gắng truy cập vào danh sách, bạn có thể lưu trữ bao nhiêu người dùng dưới đó tùy thích. Nhưng điều đó có nghĩa là bạn luôn truy cập trực tiếp, ví dụ: ref.child('users').child(auth.uid).on(....

Điều này giới hạn các trường hợp sử dụng mà bạn có thể triển khai, vì vậy các nhà phát triển thường tạo danh sách người dùng phụ theo cách họ cần sử dụng chúng. Ví dụ: nếu mỗi người dùng đang giữ danh sách bạn bè, bạn có thể giữ lại những người như ref.child('users_friends').child(auth.id).on(... và xem từng người trong số họ một lần nữa với ref.child('users').child(auth.uid). Bằng cách đó, bạn chỉ đọc một danh sách nhỏ người dùng và sau đó tải từng người dùng một cách trực tiếp.

Các vấn đề liên quan