generateStorageRules method
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');
}