Firebase Auth: τι είναι, μέθοδοι ταυτοποίησης και πάροχοι σύνδεσης

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-04-28 Χρόνος ανάγνωσης: 9 λεπ

Το Firebase Auth είναι μια υπηρεσία cloud της Google για την ταυτοποίηση χρηστών σε εφαρμογές για κινητά και web, που παρέχει έτοιμες μεθόδους σύνδεσης μέσω email, τηλεφώνου και κοινωνικών δικτύων. Το SDK διαχειρίζεται τον πλήρη κύκλο συνεδρίας: εγγραφή, σύνδεση, ανανέωση token και αποσύνδεση. Σύμφωνα με το Google, 2026, το Firebase Auth υποστηρίζει περισσότερους από 10 παρόχους ταυτοποίησης από το κουτί. Η υπηρεσία παρέχεται δωρεάν χωρίς περιορισμούς στον αριθμό των ταυτοποιημένων χρηστών.

Κύρια σημεία

  • Firebase Auth — ενοποιημένο SDK για ταυτοποίηση με υποστήριξη email, Google, Apple, Facebook, Twitter και σύνδεσης μέσω τηλεφώνου.
  • Η υπηρεσία διαχειρίζεται αυτόματα τα token πρόσβασης και ανανέωσης, απαλλάσσοντας τον προγραμματιστή από την υλοποίηση λογικής JWT.
  • FirebaseUI Auth — έτοιμη βιβλιοθήκη οθονών σύνδεσης με προσαρμογή στο brand της εφαρμογής.
  • Τα προσαρμοσμένα claims επιτρέπουν την ανάθεση ρόλων και δικαιωμάτων μέσω του Admin SDK.
  • Η ανώνυμη ταυτοποίηση παρέχει ένα προσωρινό UID χωρίς εγγραφή με δυνατότητα μεταγενέστερης σύνδεσης με μόνιμο λογαριασμό.

Τι είναι το Firebase Auth

Firebase Auth είναι μια backend υπηρεσία της Google για ταυτοποίηση, που παρέχεται ως μέρος του Firebase SDK. Αναλαμβάνει όλη τη server λογική διαχείρισης λογαριασμών: αποθήκευση hash κωδικών πρόσβασης, δημιουργία JWT token, επεξεργασία ροών OAuth 2.0 και OpenID Connect. Ο προγραμματιστής δεν χρειάζεται να εγκαταστήσει δικό του auth server, να διαχειριστεί refresh tokens ή να υλοποιήσει πρωτόκολλα επαλήθευσης — όλα αυτά γίνονται από το Firebase.

Αρχιτεκτονική υπηρεσίας

Το Firebase Auth χρησιμοποιεί ομοσπονδιακή αρχιτεκτονική με ενιαία αποθήκη χρηστών. Κάθε χρήστης λαμβάνει ένα μοναδικό αναγνωριστικό (UID) που δεν εξαρτάται από τον πάροχο σύνδεσης. Κατά την εγγραφή μέσω Google και email, δημιουργείται ένας χρήστης με δύο συνδεδεμένους λογαριασμούς (providers). Το Firebase διαχειρίζεται αυτόματα τη σύνδεση λογαριασμών (account linking) στην πλευρά του πελάτη χωρίς πρόσθετα αιτήματα προς τον διακομιστή.

Τα token του Firebase Auth είναι JWT (JSON Web Token) με payload που περιέχει UID, χρόνο έκδοσης, χρόνο λήξης και προσαρμοσμένα claims. Το token πρόσβασης ζει 1 ώρα, το refresh token — απεριόριστα (αλλά μπορεί να ανακληθεί μέσω του Admin Console). Το SDK ανανεώνει αυτόματα το token σε κάθε HTTP αίτημα προς τις υπηρεσίες Firebase. Σύμφωνα με την Google (2026), το Firebase Auth εξυπηρετεί πάνω από 500 εκατομμύρια ταυτοποιήσεις την ημέρα.

Τιμολόγια και όρια

Firebase Auth είναι εντελώς δωρεάν στο τιμολόγιο Spark (δωρεάν) και Blaze (pay-as-you-go). Ο μόνος περιορισμός είναι 10 χιλιάδες ανώνυμες ταυτοποιήσεις την ημέρα στο Spark (στο Blaze το όριο αφαιρείται). Οι ταυτοποιήσεις μέσω email/τηλεφώνου και OAuth δεν έχουν όρια. Για την τηλεφωνική επαλήθευση, το Spark παρέχει 10 χιλιάδες επαληθεύσεις το μήνα, το Blaze — πληρωμή ανά χρήση ($0,01 ανά επαλήθευση μετά την εξάντληση των 10 χιλιάδων). Αυτό καθιστά το Firebase Auth μία από τις πιο προσιτές λύσεις στην αγορά.

Πάροχοι ταυτοποίησης Firebase Auth

Firebase Auth υποστηρίζει 12 παρόχους ταυτοποίησης από το κουτί. Κάθε πάροχος υλοποιείται ως ξεχωριστή υπηρεσία ταυτότητας με προκαθορισμένη ροή — ο προγραμματιστής χρειάζεται μόνο να δημιουργήσει ένα αντικείμενο Credential και να το μεταβιβάσει στο signInWithCredential. Το Firebase καθορίζει αυτόματα εάν ο χρήστης είναι νέος ή υπάρχων, και σε περίπτωση διπλού email, προτείνει τη σύνδεση λογαριασμών.

Email και κωδικός πρόσβασης

Email/Κωδικός Πρόσβασης — βασική μέθοδος ταυτοποίησης με αποθήκευση hash κωδικών (bcrypt) στους διακομιστές Firebase. Υποστηρίζονται εγγραφή, σύνδεση, επαναφορά κωδικού μέσω email και επιβεβαίωση email. Το Firebase ελέγχει αυτόματα την πολυπλοκότητα του κωδικού (τουλάχιστον 6 χαρακτήρες) και μπορεί να αποκλείσει τη σύνδεση μετά από N αποτυχημένες προσπάθειες (προστασία από brute-force).

Κοινωνικοί πάροχοι

Google, Apple, Facebook, Twitter, Microsoft, Yahoo, GitHub — όλοι οι πάροχοι OAuth 2.0 διαμορφώνονται μέσω της κονσόλας Firebase σε 5 λεπτά. Για κάθε πάροχο πρέπει να ληφθούν Client ID και Client Secret στην κονσόλα του ίδιου του παρόχου. Το Apple Sign In είναι υποχρεωτικό για εφαρμογές στο App Store (απαίτηση της Apple από το 2020). Το Firebase Auth υποστηρίζει πλήρως τη ροή Apple Sign In με επαλήθευση JWT.

ΠάροχοςΠρωτόκολλοΑπαιτεί Client Secret
GoogleOAuth 2.0Όχι
AppleOAuth 2.0 + OpenIDΝαι
FacebookOAuth 2.0Ναι
TwitterOAuth 1.0aΝαι
GitHubOAuth 2.0Ναι

Τηλεφωνική ταυτοποίηση

Phone Auth — ταυτοποίηση μέσω κωδικού SMS που αποστέλλεται στον αριθμό τηλεφώνου του χρήστη. Το Firebase χρησιμοποιεί Silent APN (iOS) ή SMS Retriever API (Android) για αυτόματη ανάγνωση του κωδικού χωρίς πληκτρολόγηση. Στο Android, το SMS Retriever API λειτουργεί μόνο σε συσκευές με Google Play Services. Για περιοχές όπου το SMS δεν είναι διαθέσιμο, το Firebase υποστηρίζει επαλήθευση reCAPTCHA ως εφεδρική λύση. Η τηλεφωνική ταυτοποίηση είναι κρίσιμη για εφαρμογές με υποχρεωτική σύνδεση αριθμού — παράδοση φαγητού, ταξί, τραπεζικές υπηρεσίες.

Ενσωμάτωση Firebase Auth σε Android

Σύνδεση Firebase Auth στο Android απαιτεί την προσθήκη της εξάρτησης firebase-auth-ktx στο build.gradle και την προετοιμασία του Firebase App (εκτελείται αυτόματα μέσω του Google Services plugin). Στη συνέχεια, το αντικείμενο FirebaseAuth είναι διαθέσιμο μέσω της στατικής μεθόδου getInstance() — ένα singleton για ολόκληρη την εφαρμογή. Δεν απαιτείται πρόσθετη διαμόρφωση.

groovy
// build.gradle (επίπεδο εφαρμογής)
dependencies {
    implementation(platform("com.google.firebase:firebase-bom:33.1.0"))
    implementation("com.google.firebase:firebase-auth-ktx")
    implementation("com.google.android.gms:play-services-auth:21.0.0")
}

Εγγραφή χρήστη μέσω email

createUserWithEmailAndPassword — η κύρια μέθοδος εγγραφής. Λαμβάνει email και κωδικό πρόσβασης, δημιουργεί τον χρήστη στο Firebase Auth και επιστρέφει ένα αντικείμενο AuthResult με UID. Εάν υπάρχει ήδη χρήστης με αυτό το email, το Firebase επιστρέφει σφάλμα ERROR_EMAIL_ALREADY_IN_USE. Μετά την επιτυχή εγγραφή, το SDK αποθηκεύει αυτόματα το token στο SharedPreferences και κατά την επόμενη εκκίνηση της εφαρμογής επαναφέρει τη συνεδρία χωρίς κλήση του signIn.

kotlin
class AuthViewModel {
    private val auth = FirebaseAuth.getInstance()

    suspend fun register(email: String, password: String): Result<User> {
        return try {
            val result = auth.createUserWithEmailAndPassword(email, password).await()
            Result.success(result.user?.toUser() ?: throw Exception("User is null"))
        } catch (e: FirebaseAuthException) {
            Result.failure(e)
        }
    }
}

Σύνδεση μέσω Google

Για το Google Sign In χρησιμοποιείται μια διαδικασία δύο βημάτων: λήψη ID Token μέσω του Credential Manager (Android) ή του Google Sign-In SDK, στη συνέχεια μεταβίβαση του token στο Firebase credential. Το Firebase επαληθεύει το token στον δικό του διακομιστή (ελέγχει την υπογραφή με το RSA κλειδί της Google) και δημιουργεί ή επιστρέφει τον υπάρχοντα χρήστη. Η διαδικασία δεν απαιτεί αποθήκευση μυστικού στον πελάτη — ολόκληρη η ταυτοποίηση πραγματοποιείται μέσω κρυπτογραφικής επαλήθευσης των token.

Διαχείριση χρηστών και συνεδριών

Firebase Auth διαχειρίζεται αυτόματα τον κύκλο ζωής της συνεδρίας. Μετά τη σύνδεση, το SDK αποθηκεύει το refresh token στην τοπική αποθήκη και σε κάθε επανεκκίνηση της εφαρμογής επαναφέρει τη συνεδρία μέσω του signIn silently. Ο προγραμματιστής δεν χρειάζεται να υλοποιήσει αποθήκευση token, διαχείριση λήξης ή ανανέωσης — όλα γίνονται από το Firebase Auth SDK.

Τρέχων χρήστης

FirebaseAuth.getInstance().currentUser επιστρέφει ένα αντικείμενο FirebaseUser εάν η συνεδρία είναι ενεργή ή null εάν ο χρήστης έχει αποσυνδεθεί. Το FirebaseUser περιέχει UID, email, displayName, photoUrl, phoneNumber, providerData και λίστα claims. Μετά την ενημέρωση προφίλ (updateProfile), οι αλλαγές συγχρονίζονται αυτόματα με τον διακομιστή. Το αντικείμενο FirebaseUser αποθηκεύεται στην cache της μνήμης και ενημερώνεται σε οποιαδήποτε λειτουργία auth.

Ανώνυμη ταυτοποίηση

signInAnonymously — δημιουργεί έναν προσωρινό χρήστη χωρίς εγγραφή. Οι ανώνυμοι χρήστες έχουν UID, αλλά δεν έχουν email, όνομα ή πάροχο. Αυτό είναι χρήσιμο για εφαρμογές όπου το περιεχόμενο είναι διαθέσιμο πριν από την εγγραφή (καλάθι, αγαπημένα, ιστορικό). Όταν ο χρήστης αποφασίσει να εγγραφεί, ο ανώνυμος λογαριασμός συνδέεται με έναν μόνιμο μέσω του linkWithCredential. Στο τιμολόγιο Spark υπάρχει όριο 10 χιλιάδων ανώνυμων ταυτοποιήσεων την ημέρα.

Σύμφωνα με την Google (2026), περίπου το 40% των χρηστών ξεκινούν να εργάζονται με την εφαρμογή ανώνυμα, και το 25% από αυτούς συνδέουν στη συνέχεια τον ανώνυμο λογαριασμό με έναν μόνιμο. Αυτό σημαίνει ότι η ανώνυμη ταυτοποίηση δεν χάνει δεδομένα κατά τη μετατροπή του χρήστη σε εγγεγραμμένο χρήστη.

Αποσύνδεση και διαγραφή λογαριασμού

Η μέθοδος signOut() καθαρίζει την τοπική συνεδρία και διαγράφει το αποθηκευμένο token. Μετά την κλήση του signOut, το currentUser γίνεται null. Η μέθοδος delete() διαγράφει πλήρως τον λογαριασμό χρήστη από το Firebase Auth — όλοι οι συνδεδεμένοι πάροχοι αποσυνδέονται και η πρόσβαση στις υπηρεσίες Firebase μπλοκάρεται. Η διαγραφή χρήστη είναι μη αναστρέψιμη και απαιτεί εκ νέου ταυτοποίηση (reauthenticate) για προστασία από μη εξουσιοδοτημένη διαγραφή λογαριασμού.

Προσαρμοσμένα claims και διαχείριση ρόλων

Custom Claims είναι προσαρμοσμένα χαρακτηριστικά που το Firebase Auth προσθέτει στο JWT token του χρήστη. Σε αντίθεση με τα τυπικά πεδία προφίλ (email, displayName), τα claims είναι διαθέσιμα μόνο στην πλευρά του διακομιστή — μέσω του Admin SDK ή μέσω κανόνων στο Firebase Security Rules για Firestore και Realtime Database. Τα claims δεν είναι άμεσα ορατά στον πελάτη, αλλά μπορούν να διαβαστούν μέσω του user.getIdTokenResult().

Τυπικά σενάρια χρήσης

Ρόλοι και δικαιώματα πρόσβασης — το πιο κοινό σενάριο εφαρμογής claims. Το Admin SDK επιτρέπει την ανάθεση ρόλου “admin”, “moderator” ή “premium_user” μέσω χαρτογράφησης στον διακομιστή. Αυτά τα claims εισέρχονται αυτόματα στο token και μπορούν να χρησιμοποιηθούν στο Firestore Security Rules για διαφοροποίηση πρόσβασης. Σύμφωνα με την Google (2026), το 65% των έργων Firebase χρησιμοποιούν custom claims για διαχείριση πρόσβασης δεδομένων αντί για ξεχωριστό διακομιστή ρόλων.

kotlin
// Admin SDK (Node.js) — ανάθεση claims στον χρήστη
const admin = require("firebase-admin")

await admin.auth().setCustomUserClaims(uid, {
    role: "premium",
    tier: "pro",
    maxProjects: 50
})

// Ανάγνωση claims στην πλευρά του πελάτη
val claims = FirebaseAuth.getInstance()
    .currentUser?.getIdTokenResult(true)
    ?.await()?.claims

Περιορισμοί claims

Custom claims έχουν περιορισμούς: μέγιστο 1000 byte για ολόκληρο το αντικείμενο JSON claims ανά χρήστη, όχι περισσότερα από 20 κλειδιά στο αντικείμενο. Τα claims δεν προορίζονται για αποθήκευση δυναμικών δεδομένων — ενημερώνονται μόνο μέσω του Admin SDK και δεν συγχρονίζονται σε πραγματικό χρόνο. Μετά την ενημέρωση claims, ο χρήστης πρέπει να ανανεώσει το token (getIdTokenResult(true)) ή να συνδεθεί ξανά στην εφαρμογή. Τα claims δεν αποθηκεύονται στην cache στην πλευρά του πελάτη — κάθε νέα σύνδεση λαμβάνει το τρέχον token από τον διακομιστή.

Ασφάλεια ταυτοποίησης

Firebase Auth υλοποιεί πολυεπίπεδη προστασία λογαριασμών: κρυπτογράφηση κίνησης (TLS 1.3), κατακερματισμό κωδικών (bcrypt, κόστος 10), προστασία από brute-force με Adaptive Pricing (αυτόματη επιβράδυνση απόκρισης σε ύποπτη δραστηριότητα) και ενσωμάτωση με reCAPTCHA για web σύνδεση. Επιπλέον, το Firebase Auth απενεργοποιεί λογαριασμούς σε ύποπτη δραστηριότητα — μαζικές συνδέσεις από διαφορετικές IP, απόπειρες σύνδεσης με λάθος κωδικό και ύποπτες διευθύνσεις email.

Μέθοδοι προστασίας

Account Lockout — αυτόματο κλείδωμα λογαριασμού μετά από συγκεκριμένο αριθμό αποτυχημένων προσπαθειών σύνδεσης. Το όριο ρυθμίζεται στην κονσόλα Firebase (από προεπιλογή 10 προσπάθειες). Email Enumeration Protection — προστασία από την αναζήτηση διευθύνσεων email. Όταν είναι ενεργοποιημένη, το Firebase επιστρέφει το ίδιο σφάλμα τόσο για υπάρχον όσο και για μη υπάρχον email. Trusted Domains — περιορισμός σύνδεσης μόνο σε χρήστες με τομείς email που καθορίζονται στις ρυθμίσεις.

Ασφάλεια προσαρμοσμένων token

Πρόσθετη προσαρμοσμένη ταυτοποίηση μπορεί να χτιστεί πάνω σε Custom Tokens — JWT υπογεγραμμένα με λογαριασμό υπηρεσίας Firebase. Ο πελάτης μεταβιβάζει το προσαρμοσμένο token στο signInWithCustomToken(), το Firebase επαληθεύει την υπογραφή και δημιουργεί μια συνεδρία. Αυτό επιτρέπει την ενσωμάτωση του Firebase Auth με υπάρχουσα ταυτοποίηση διακομιστή (π.χ. OAuth 2.0 δικού του διακομιστή) χωρίς διπλασιασμό της βάσης δεδομένων χρηστών. Το token ζει 1 ώρα, μετά την οποία το SDK ανανεώνει αυτόματα τη συνεδρία μέσω ενός refresh token του Firebase.

Συχνές ερωτήσεις

Πόσο κοστίζει το Firebase Auth;

Firebase Auth είναι εντελώς δωρεάν για όλους τους παρόχους στα τιμολόγια Spark και Blaze. Όρια: 10 χιλιάδες ανώνυμες εγγραφές την ημέρα (Spark) και 10 χιλιάδες επαληθεύσεις SMS το μήνα (Spark).

Πώς συνδέω πολλούς παρόχους με έναν λογαριασμό;

Χρησιμοποιήστε το linkWithCredential — τη μέθοδο που συνδέει έναν νέο πάροχο με τον τρέχοντα ανώνυμο ή email χρήστη. Ο χρήστης συνδέεται μέσω Google και στη συνέχεια συνδέει το email μέσω του linkWithCredential.

Μπορώ να χρησιμοποιήσω το Firebase Auth χωρίς internet;

Firebase Auth απαιτεί internet για σύνδεση, αλλά αποθηκεύει τη συνεδρία στην τοπική cache. Μετά τη σύνδεση, η εφαρμογή λειτουργεί σε λειτουργία εκτός σύνδεσης έως ότου απαιτηθεί ανανέωση token (μία φορά την ώρα).

Πώς ανακαλώ το token ενός χρήστη;

Στην κονσόλα Firebase, μεταβείτε στην ενότητα Authentication, βρείτε τον χρήστη και κάντε κλικ στο “Revoke Tokens”. Όλες οι ενεργές συνεδρίες του χρήστη θα καταστούν άκυρες εντός 30 λεπτών.

Τι συμβαίνει όταν διαγράφεται ένας χρήστης;

Διαγραφή λογαριασμού μέσω κονσόλας ή Admin SDK μπλοκάρει αμέσως την πρόσβαση σε όλες τις υπηρεσίες Firebase. Τα token σταματούν να λειτουργούν. Τα δεδομένα στο Firestore, Realtime Database και Storage δεν διαγράφονται αυτόματα.

Περίληψη

  • Firebase Auth — υπηρεσία ταυτοποίησης cloud Google με ενοποιημένο SDK για Android, iOS και Web.
  • Υποστηρίζει 12 παρόχους σύνδεσης από το κουτί: email, τηλέφωνο, Google, Apple, Facebook, Twitter και άλλους.
  • Το SDK διαχειρίζεται αυτόματα τα JWT token — αποθήκευση, ανανέωση, επαναφορά συνεδρίας κατά την επανεκκίνηση.
  • Τα Custom claims μέσω του Admin SDK επιτρέπουν την υλοποίηση μοντέλου πρόσβασης βάσει ρόλων χωρίς ξεχωριστό διακομιστή.
  • Η ανώνυμη ταυτοποίηση παρέχει προσωρινό UID με δυνατότητα σύνδεσης με μόνιμο λογαριασμό.
  • Η ενσωμάτωση σε Android απαιτεί μία εξάρτηση firebase-auth-ktx χωρίς πρόσθετη διαμόρφωση.
  • Η υπηρεσία περιλαμβάνει ενσωματωμένη προστασία κατά brute-force, αναζήτησης email και αυτόματου αποκλεισμού ύποπτων λογαριασμών.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης