An anonymous social feed application built with Flutter and Firebase. Share posts, interact with content, and connect with others while maintaining your privacy.
- π Google Sign-In Authentication - Secure authentication using Google accounts
- π Create Posts - Share text posts with optional images and hashtags
- β€οΈ Like & Comment - Interact with posts through likes and comments
- π Search - Search posts by content, username, or hashtags
- π€ User Profiles - View and manage your profile
- πΌοΈ Image Support - Upload and display images in posts
- β° Real-time Updates - Live feed updates using Firestore streams
- π¨ Modern UI - Beautiful Material Design 3 interface
- Framework: Flutter 3.8.0+
- Backend: Firebase
- Firebase Authentication (Google Sign-In)
- Cloud Firestore (Database)
- Firebase Storage (Image storage)
- State Management: Provider
- Key Packages:
firebase_core,firebase_auth,cloud_firestore,firebase_storagegoogle_sign_inimage_picker,cached_network_imageproviderintl,timeago,uuid
Before you begin, ensure you have the following installed:
- Flutter SDK (3.8.0 or higher)
- Dart SDK (included with Flutter)
- Android Studio or VS Code with Flutter extensions
- Firebase CLI (optional, for Firebase setup)
- A Google account for Firebase project setup
git clone <repository-url>
cd anonfeedflutter pub getFollow the detailed Firebase setup instructions in FIREBASE_SETUP.md.
Quick Setup Steps:
- Create a Firebase project at Firebase Console
- Enable Authentication with Google Sign-In
- Create a Firestore Database (start in test mode for development)
- Enable Firebase Storage
- Run
flutterfire configureto set up Firebase for your Flutter app - Add SHA-1 key for Android (see FIREBASE_SETUP.md for details)
# Run on connected device/emulator
flutter run
# Run on specific platform
flutter run -d chrome # Web
flutter run -d windows # Windows
flutter run -d android # Android
flutter run -d ios # iOS (macOS only)lib/
βββ main.dart # App entry point and authentication wrapper
βββ models/ # Data models
β βββ user_model.dart
β βββ post_model.dart
β βββ comment_model.dart
βββ screens/ # UI screens
β βββ login_screen.dart
β βββ main_screen.dart # Bottom navigation wrapper
β βββ home_screen.dart # Feed of posts
β βββ search_screen.dart # Search functionality
β βββ create_post_screen.dart
β βββ comments_screen.dart
β βββ profile_screen.dart
βββ services/ # Business logic
βββ auth_service.dart # Authentication operations
βββ database_service.dart # Firestore operations
βββ storage_service.dart # Firebase Storage operations
- Launch the app
- Tap "Sign in with Google"
- Select your Google account
- Grant necessary permissions
- Navigate to the "Create" tab (bottom navigation)
- Enter your post content
- Optionally add an image by tapping the image icon
- Add hashtags (format: #hashtag)
- Tap "Post" to publish
- Like: Tap the heart icon on any post
- Comment: Tap the comment icon to view/add comments
- Search: Use the search tab to find posts by content, user, or hashtag
- Profile: View your profile and posts in the Profile tab
users/
{uid}/
- uid: string
- email: string
- username: string
- profile_image: string
- created_at: timestamp
posts/
{postId}/
- post_id: string
- user_id: string
- username: string
- content_text: string
- image_url: string
- hashtags: array
- created_at: timestamp
- likes_count: number
- comments_count: number
comments/
{postId}/
postComments/
{commentId}/
- comment_id: string
- post_id: string
- user_id: string
- username: string
- comment_text: string
- created_at: timestamp
likes/
{postId}/
userLikes/
{userId}/
- liked_at: timestamp
For development, the app uses test mode security rules. Before deploying to production, update your Firestore and Storage security rules. See FIREBASE_SETUP.md for recommended production rules.
Run the test suite:
flutter testflutter build apk --release
# or
flutter build appbundle --releaseflutter build ios --releaseflutter build web --releaseflutter build windows --releaseGoogle Sign-In not working:
- Verify SHA-1 key is added in Firebase Console
- Download and replace
google-services.json(Android) orGoogleService-Info.plist(iOS) - Clean and rebuild:
flutter clean && flutter pub get
Firestore permission errors:
- Check Firestore Security Rules in Firebase Console
- Ensure user is authenticated
- Verify rules allow the operation you're trying to perform
Image upload issues:
- Check Firebase Storage Rules
- Verify user is authenticated
- Check file size limits (default is 5MB)
Build errors:
- Run
flutter clean - Delete
pubspec.lockand runflutter pub get - Ensure all Firebase configuration files are in place
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions:
- Check FIREBASE_SETUP.md for Firebase-related issues
- Review Flutter documentation: https://docs.flutter.dev/
- Review Firebase documentation: https://firebase.google.com/docs
- Flutter team for the amazing framework
- Firebase team for the backend services
- All open-source contributors