generateStorageRules method

Future<void> generateStorageRules()

Generate Storage rules

Implementation

Future<void> generateStorageRules() async {
  info('Generating Storage rules...');

  final String content = '''
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
  // Default: deny all access
  match /{allPaths=**} {
    allow read, write: if false;
  }

  // User-specific storage
  match /users/{userId}/{allPaths=**} {
    allow read: if request.auth != null && request.auth.uid == userId;
    allow write: if request.auth != null && request.auth.uid == userId
                 && request.resource.size < 10 * 1024 * 1024; // 10MB max
  }

  // Public assets (read-only)
  match /public/{allPaths=**} {
    allow read: if true;
    allow write: if false;
  }
}
}
''';

  final Directory configDir3 = Directory(p.join(config.outputDir, 'config'));
  if (!configDir3.existsSync()) {
    await configDir3.create(recursive: true);
  }

  final File file3 = File(p.join(configDir3.path, 'storage.rules'));
  await file3.writeAsString(content);
  success('Generated: config/storage.rules');
}