Cloud Storage en Functions
Integreer Firebase Cloud Storage voor het uploaden en downloaden van bestanden en verken Cloud Functions voor serverloze backendlogica.
Cloud Storage en Functions is een gratis Mobiele ontwikkeling met Flutter-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Mobiele ontwikkeling met Flutter. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Mobiele ontwikkeling met Flutter bevat in totaal 4 lessen.
Cloud Storage: bestanden van je app
Welkom bij Firebase Cloud Storage! Met deze service kan je app door gebruikers gegenereerde inhoud opslaan en aanbieden, zoals foto's, video's en documenten.
Je kunt het zien als een krachtig, schaalbaar cloudbestandssysteem voor je mobiele applicatie. Het is ontworpen om mee te schalen en kan naadloos worden geïntegreerd met andere Firebase-services.
Storage-buckets en regels
Bestanden in Cloud Storage worden georganiseerd in buckets. Elk Firebase-project heeft een standaardbucket, maar je kunt er meer maken.
Belangrijk is dat je beveiligingsregels definieert voor je Storage-bucket. Deze regels bepalen wie bestanden mag lezen, schrijven of verwijderen, zodat je gegevens beschermd blijven.
allow read, write: if request.auth != null;(geverifieerde gebruikers)allow read;(openbaar lezen)
Voorbereiding op bestandsuploads
Om bestanden vanuit je Flutter-app te uploaden, gebruik je het pakket firebase_storage. Eerst moet je een verwijzing ophalen naar de locatie waar je het bestand in je bucket wilt opslaan.
Het daadwerkelijke selecteren van een bestand op het apparaat (bijvoorbeeld uit de galerij of met de camera) gebeurt meestal met een ander pakket, zoals image_picker of file_picker. Voor ons voorbeeld gaan we ervan uit dat je zo'n pakket gebruikt.
Code: gegevens uploaden
Zo upload je een eenvoudige tekenreeks naar Firebase Cloud Storage. In een echte app vervang je de tekenreeks door bytes uit een bestand dat door de gebruiker is geselecteerd.
(Voor dit uitvoerbare codefragment wordt ervan uitgegaan dat Firebase is geïnitialiseerd)
import 'package:firebase_storage/firebase_storage.dart';
import 'dart:typed_data';
void main() async {
// In a real Flutter app, Firebase must be initialized first:
// await Firebase.initializeApp();
final storageRef = FirebaseStorage.instance.ref();
final fileRef = storageRef.child("coddykit_uploads/greeting.txt");
try {
final String content = "Hello from CoddyKit Storage!";
final Uint8List data = Uint8List.fromList(content.codeUnits);
await fileRef.putData(data);
print("File 'greeting.txt' uploaded!");
} catch (e) {
print("Upload error: $e");
}
}Download-URL's ophalen
Na het uploaden van een bestand heb je vaak een openbare URL nodig om het te openen, bijvoorbeeld om een afbeelding in je app weer te geven of een document te delen.
Firebase Storage biedt een methode om deze download-URL op te halen. Je kunt deze URL vervolgens opslaan in een database zoals Cloud Firestore, zodat je deze eenvoudig kunt ophalen en weergeven.
Code: download-URL ophalen
Nadat een bestand is geüpload, kun je eenvoudig de openbare download-URL ophalen. Je kunt deze URL rechtstreeks gebruiken in widgets zoals Image.network().
(Voor dit uitvoerbare codefragment wordt ervan uitgegaan dat Firebase is geïnitialiseerd)
import 'package:firebase_storage/firebase_storage.dart';
void main() async {
// In a real Flutter app, Firebase must be initialized first.
final storageRef = FirebaseStorage.instance.ref();
// Reference the same file we uploaded previously
final fileRef = storageRef.child("coddykit_uploads/greeting.txt");
try {
final String downloadURL = await fileRef.getDownloadURL();
print("Download URL for 'greeting.txt':");
print(downloadURL);
} catch (e) {
print("Error getting URL: $e");
print("Ensure 'greeting.txt' exists in storage.");
}
}Cloud Functions: serverloze backend
Met Firebase Cloud Functions kun je backendcode uitvoeren als reactie op gebeurtenissen die door Firebase-functies en HTTPS-verzoeken worden geactiveerd, zonder dat je servers hoeft te beheren.
Zo kun je de functionaliteit van je app uitbreiden met aangepaste logica die in een veilige, schaalbare cloudomgeving wordt uitgevoerd.
Functietypen en triggers
Cloud Functions kunnen door verschillende gebeurtenissen worden geactiveerd:
- HTTP-triggers: Reageren op standaard-HTTP-verzoeken (zoals een eindpunt van een REST-API).
- Databasetriggers: Voeren code uit wanneer gegevens worden gemaakt, bijgewerkt of verwijderd in Cloud Firestore of Realtime Database.
- Storage-triggers: Reageren op bestandsuploads, verwijderingen of wijzigingen in metagegevens in Cloud Storage.
- Authenticatietriggers: Voeren code uit wanneer gebruikers worden gemaakt of verwijderd.
Functies aanroepen vanuit Flutter
Om vanuit je Flutter-app met Cloud Functions te werken, gebruik je het pakket cloud_functions. Je kunt een door HTTP geactiveerde functie aanroepen met de naam ervan en er gegevens aan doorgeven.
De functie wordt op de server uitgevoerd en je app ontvangt het resultaat.
(Er wordt uitgegaan van een geïnitialiseerde Firebase en een functie met de naam 'sayHello' op de backend.)
import 'package:cloud_functions/cloud_functions.dart';
void main() async {
// In a real Flutter app, Firebase must be initialized first.
try {
// Call a Cloud Function named 'sayHello'
final HttpsCallable callable =
FirebaseFunctions.instance.httpsCallable('sayHello');
final result = await callable.call(<String, dynamic>{
'name': 'CoddyKit User',
});
print("Function response: ${result.data}");
} on FirebaseFunctionsException catch (e) {
print("Cloud Function error: ${e.code} - ${e.message}");
} catch (e) {
print("General error calling function: $e");
}
}Snelle controle: Firebase-services
Welke van de volgende uitspraken over Firebase Cloud Storage en Cloud Functions zijn WAAR?
Samenvatting: Storage en Functions
Goed gedaan! In deze les heb je het volgende geleerd:
- Firebase Cloud Storage: Een schaalbare service voor het opslaan van door gebruikers gegenereerde inhoud, zoals bestanden.
- Beveiligingsregels voor Storage: Je bestanden beveiligen door toegangsrechten te definiëren.
- Uploaden en downloaden:
firebase_storagegebruiken om bestanden te beheren en download-URL's op te halen. - Cloud Functions: Een serverloos platform voor het uitvoeren van backendcode als reactie op gebeurtenissen of HTTP-verzoeken.
- Integratie: Cloud Functions vanuit je Flutter-app aanroepen met
cloud_functions.
Met deze krachtige services kun je uitgebreid bestandsbeheer en aangepaste backendlogica toevoegen aan je Flutter-applicaties!
Leer Dart met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 22
- Lessen
- 88
Veelgestelde vragen
Is de les “Cloud Storage en Functions” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Mobiele ontwikkeling met Flutter, waaronder “Cloud Storage en Functions”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Mobiele ontwikkeling met Flutter bevat in totaal 4 lessen.
Wat leer ik in “Cloud Storage en Functions”?
Integreer Firebase Cloud Storage voor het uploaden en downloaden van bestanden en verken Cloud Functions voor serverloze backendlogica. Je oefent met Mobiele ontwikkeling met Flutter door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Mobiele ontwikkeling met Flutter te beginnen?
Ervaring vooraf is niet nodig. Mobiele ontwikkeling met Flutter op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Cloud Storage en Functions”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Mobiele ontwikkeling met Flutter?
Ja. Elke les over Mobiele ontwikkeling met Flutter bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Firebase instellen en authenticatie
- Cloud Firestore-database
- Cloud Storage en Functions
- Firebase Cloud Messaging en notificaties