Cloud Storage och Functions
Integrera Firebase Cloud Storage för filuppladdningar och filnedladdningar och utforska Cloud Functions för serverlös backend-logik.
Cloud Storage och Functions är en gratis lektion i Mobilutveckling med Flutter på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Mobilutveckling med Flutter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Mobilutveckling med Flutter innehåller totalt 4 lektioner.
Cloud Storage: Appens filer
Välkomna till Firebase Cloud Storage! Med den här tjänsten kan appen lagra och tillhandahålla användarskapat innehåll, till exempel foton, videor och dokument.
Se det som ett kraftfullt och skalbart molnbaserat filsystem för mobilapplikationen. Det är byggt för att kunna skalas och integreras sömlöst med andra Firebase-tjänster.
Lagringsbucketar och regler
Filer i Cloud Storage organiseras i bucketar. Varje Firebase-projekt har en standardbucket, men ni kan skapa fler.
Det är viktigt att ni definierar säkerhetsregler för lagringsbucketen. Reglerna avgör vem som får läsa, skriva eller ta bort filer och ser till att era data skyddas.
allow read, write: if request.auth != null;(autentiserade användare)allow read;(offentlig läsning)
Förbereda filuppladdningar
Om ni vill ladda upp filer från Flutter-appen använder ni paketet firebase_storage. Först behöver ni hämta en referens till den plats i bucketen där ni vill lagra filen.
Själva processen för att välja en fil från enheten (till exempel från galleri eller kamera) kräver vanligtvis ett annat paket, som image_picker eller file_picker. Vi utgår från att ett sådant paket finns i vårt exempel.
Kod: Ladda upp data
Så här laddar ni upp en enkel datasträng till Firebase Cloud Storage. I en riktig app skulle ni ersätta strängen med byte från en fil som användaren har valt.
(Firebase-initiering förutsätts för detta körbara kodexempel)
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");
}
}Hämta nedladdnings-URL:er
Efter att en fil har laddats upp behöver ni ofta en offentlig URL för att komma åt den, till exempel för att visa en bild i appen eller dela ett dokument.
Firebase Storage tillhandahåller en metod för att hämta denna nedladdnings-URL. Sedan kan ni lagra URL:en i en databas som Cloud Firestore för att enkelt kunna hämta och visa den.
Kod: Hämta nedladdnings-URL
När en fil har laddats upp kan ni enkelt hämta dess offentliga nedladdnings-URL. URL:en kan användas direkt i widgetar som Image.network().
(Firebase-initiering förutsätts för detta körbara kodexempel)
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: Serverlös backend
Med Firebase Cloud Functions kan ni köra backendkod som svar på händelser från Firebase-funktioner och HTTPS-förfrågningar, utan att behöva hantera servrar.
Det innebär att ni kan utöka appens funktionalitet med anpassad logik som körs i en säker och skalbar molnmiljö.
Funktionstyper och utlösare
Cloud Functions kan utlösas av olika händelser:
- HTTP-utlösare: Svarar på vanliga HTTP-förfrågningar (till exempel en REST API-slutpunkt).
- Databasutlösare: Kör kod när data skapas, uppdateras eller tas bort i Cloud Firestore eller Realtime Database.
- Lagringsutlösare: Reagerar på filuppladdningar, borttagningar eller ändringar av metadata i Cloud Storage.
- Autentiseringsutlösare: Kör kod när användare skapas eller tas bort.
Anropa funktioner från Flutter
Om ni vill interagera med Cloud Functions från Flutter-appen använder ni paketet cloud_functions. Ni kan anropa en HTTP-utlöst funktion med dess namn och skicka data till den.
Funktionen körs på servern och appen tar emot resultatet.
(Firebase-initiering förutsätts, och en funktion med namnet 'sayHello' förväntas finnas i 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");
}
}Snabbkontroll: Firebase-tjänster
Vilka av följande påståenden om Firebase Cloud Storage och Cloud Functions är sanna?
Sammanfattning: Storage och Functions
Bra jobbat! I den här lektionen har ni lärt er om:
- Firebase Cloud Storage: En skalbar tjänst för lagring av användarskapat innehåll, till exempel filer.
- Säkerhetsregler för Storage: Hur ni skyddar filer genom att definiera åtkomstbehörigheter.
- Uppladdning och nedladdning: Hur
firebase_storageanvänds för att hantera filer och hämta nedladdnings-URL:er. - Cloud Functions: En serverlös plattform för att köra backendkod som svar på händelser eller HTTP-förfrågningar.
- Integration: Hur ni anropar Cloud Functions från Flutter-appen med
cloud_functions.
Med dessa kraftfulla tjänster kan ni lägga till robust filhantering och anpassad backendlogik i era Flutter-applikationer!
Lär dig Dart med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 22
- Lektioner
- 88
Vanliga frågor
Är lektionen ”Cloud Storage och Functions” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Mobilutveckling med Flutter, inklusive ”Cloud Storage och Functions”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Mobilutveckling med Flutter innehåller totalt 4 lektioner.
Vad lär jag mig i ”Cloud Storage och Functions”?
Integrera Firebase Cloud Storage för filuppladdningar och filnedladdningar och utforska Cloud Functions för serverlös backend-logik. Ni övar på Mobilutveckling med Flutter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Mobilutveckling med Flutter?
Du behöver inga förkunskaper. Utbildningen i Mobilutveckling med Flutter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Cloud Storage och Functions”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Mobilutveckling med Flutter-lektionen?
Ja. Varje Mobilutveckling med Flutter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Konfiguration av Firebase och autentisering
- Cloud Firestore-databas
- Cloud Storage och Functions
- Firebase Cloud Messaging och aviseringar