將 powersync_rules.yaml 檔案部署至您的 PowerSync 實例。
bucket_definitions:
user_data:
parameters:
- select: current_user_id()
data:
- select: * from profiles where id = bucket.current_user_id()
questions:
data:
- select: * from questions where is_approved = true
dependencies:
powersync_flutter: latest
powersync_sqlcipher: latest
flutter_secure_storage: latest
定義您的本地端綱要以符合 Supabase 資料表:
import 'package:powersync_flutter/powersync_flutter.dart';
const schema = Schema([
Table('questions', [
Column.text('title'),
Column.text('type'),
Column.text('options'),
Column.text('correct_answer'),
]),
]);
實作 PowerSync 連接器來處理 fetchCredentials 與 uploadData:
class BackendConnector extends PowerSyncBackendConnector {
@override
Future<PowerSyncCredentials?> fetchCredentials() async {
// 從您的驗證提供者取得 JWT
}
@override
Future<void> uploadData(PowerSyncDatabase database) async {
// 處理離線資料異動
}
}
FlutterSecureStorage 在裝置上安全地產生並儲存加密金鑰。| 變數 | 說明 |
|---|---|
POWERSYNC_URL |
PowerSync 實例的 URL |
POWERSYNC_ENDPOINTS |
以逗號分隔的備用端點清單 |
powersync_rules.yaml 語法,並確保 JWT 權杖包含正確的使用者宣告 (Claims)。