## Phase 1: Critical Feature Completion (Beacon Voting) - Add VouchBeacon, ReportBeacon, RemoveBeaconVote methods to PostRepository - Implement beacon voting HTTP handlers with confidence score calculations - Register new beacon routes: /beacons/:id/vouch, /beacons/:id/report, /beacons/:id/vouch (DELETE) - Auto-flag beacons at 5+ reports, confidence scoring (0.5 base + 0.1 per vouch) ## Phase 2: Feed Logic & Post Distribution Integrity - Verify unified feed logic supports all content types (Standard, Quips, Beacons) - Ensure proper distribution: Profile Feed + Main/Home Feed for followers - Beacon Map integration for location-based content - Video content filtering for Quips feed ## Phase 3: The Notification System - Create comprehensive NotificationService with FCM integration - Add CreateNotification method to NotificationRepository - Implement smart deep linking: beacon_map, quip_feed, main_feed - Trigger notifications for beacon interactions and cross-post comments - Push notification logic with proper content type detection ## Phase 4: The Great Supabase Purge - Delete function_proxy.go and remove /functions/:name route - Remove SupabaseURL, SupabaseKey from config.go - Remove SupabaseID field from User model - Clean all Supabase imports and dependencies - Sanitize codebase of legacy Supabase references ## Phase 5: Flutter Frontend Integration - Implement vouchBeacon(), reportBeacon(), removeBeaconVote() in ApiService - Replace TODO delay in video_comments_sheet.dart with actual publishComment call - Fix compilation errors (named parameters, orphaned child properties) - Complete frontend integration with Go API endpoints ## Additional Improvements - Fix compilation errors in threaded_comment_widget.dart (orphaned child property) - Update video_comments_sheet.dart to use proper named parameters - Comprehensive error handling and validation - Production-ready notification system with deep linking ## Migration Status: 100% Complete - Backend: Fully migrated from Supabase to custom Go/Gin API - Frontend: Integrated with new Go endpoints - Notifications: Complete FCM integration with smart routing - Database: Clean of all Supabase dependencies - Features: All functionality preserved and enhanced Ready for VPS deployment and production testing!
34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
# Notifications Troubleshooting and Fix
|
|
|
|
## Symptoms
|
|
- Notifications screen fails to load and logs show a `GET | 401` response from
|
|
`supabase/functions/v1/notifications`.
|
|
- Edge function logs show `Unauthorized` even though the client is signed in.
|
|
|
|
## Root Cause
|
|
The notifications edge function relied on `supabaseClient.auth.getUser()` without
|
|
explicitly passing the bearer token from the request. In some cases, the global
|
|
headers were not applied as expected, so `getUser()` could not resolve the user
|
|
and returned 401.
|
|
|
|
## Fix
|
|
Explicitly read the `Authorization` header and pass the token to
|
|
`supabaseClient.auth.getUser(token)`. This ensures the function authenticates the
|
|
user consistently even if the SDK does not automatically inject the header.
|
|
|
|
## Code Change
|
|
File: `supabase/functions/notifications/index.ts`
|
|
|
|
Key update:
|
|
- Parse `Authorization` header.
|
|
- Extract bearer token.
|
|
- Call `getUser(token)` instead of `getUser()` without arguments.
|
|
|
|
## Deployment Step
|
|
Redeploy the `notifications` edge function so the new auth flow is used.
|
|
|
|
## Verification
|
|
- Open the notifications screen.
|
|
- Confirm the request returns 200 and notifications render.
|
|
- If it still fails, check edge function logs for missing or empty auth headers.
|