Theo dõi đối thủ: bạn bè và bảng xếp hạng bạn bè
Theo dõi những người chơi mà bạn thích đánh bại, xem họ được xếp hạng trong tab bảng xếp hạng riêng, và quản lý mọi người từ trang Bạn bè mới có tìm kiếm theo biệt danh.

Nói đơn giản
opolyx vui hơn khi có những người bạn nhận ra. Giờ bạn có thể theo dõi bất kỳ người chơi nào — chạm Theo dõi trên hồ sơ của họ, hoặc tìm họ theo biệt danh trên trang Bạn bè mới — và họ sẽ xuất hiện trong một tab bảng xếp hạng chỉ gồm bạn và những người bạn theo dõi.
Việc theo dõi là một chiều, như ở hầu hết các ứng dụng xã hội: bạn không cần họ theo dõi lại, và chẳng có gì để chấp nhận. Dù sao bảng xếp hạng cũng là một bảng xếp hạng công khai, nên theo dõi ai đó không tiết lộ điều gì mà họ chưa từng để lộ.
- Theo dõi / bỏ theo dõi từ bất kỳ trang hồ sơ nào chỉ bằng một nút.
- Một trang Bạn bè mới với tab Đang theo dõi và Người theo dõi cùng tìm kiếm theo biệt danh để tìm người chơi.
- Một tab Bạn bè trên bảng xếp hạng xếp hạng bạn và tất cả những người bạn theo dõi theo XP.
- Số người theo dõi và số đang theo dõi giờ hiển thị dưới dạng chip trên mọi hồ sơ.
Cho người thích chi tiết kỹ thuật
Migration 0033 thêm bảng follows — một cạnh có hướng (follower, followee) với chốt chặn trùng lặp trên khóa chính, một kiểm tra cấm tự theo dõi, và xóa dây chuyền. Việc đọc dùng RLS theo hàng của chính mình (mỗi bên đọc được cạnh của mình); việc ghi đi qua hai RPC security-definer dựa trên auth.uid() được mô phỏng theo create_game.
-- follow_user / unfollow_user: idempotent, auth.uid()-scoped, security definer
-- 0031 grant lesson applied: default privileges grant EXECUTE to anon —
-- revoke from public, anon FIRST, then grant execute to authenticated only.Việc đếm người theo dõi của một người dùng bất kỳ bị chặn bởi RLS theo hàng của chính mình đó, nên migration 0034 thêm get_follow_counts(p_user) — một hàm security-definer trả về người theo dõi/đang theo dõi. Vì các con số này không nhạy cảm và hồ sơ đọc được công khai (hồ sơ hiển thị cho cả khách ẩn danh), nó được cấp cho anon + authenticated — ngược với các RPC ghi của 0033.
Truy vấn bảng xếp hạng Bạn bè đơn giản là id của người xem hợp với tất cả những người họ theo dõi, xếp hạng theo XP toàn cục. Cả hai migration đều được áp dụng lên production qua Supabase Management API và đã kiểm chứng (quyền: authenticated có / anon không đối với ghi, anon có đối với đếm) trước khi thay đổi web được phát hành.
