This guide covers migration steps only — not Firebase setup or removal of other Firebase services.
Overview
Firebase Phone Auth sends SMS OTP. Shernova uses missed-call verification. Users call a number instead of entering a code.
| Firebase | Shernova |
|---|---|
| firebase_auth.verifyPhoneNumber() | Shernova.verifyPhone() or REST API |
| SMS OTP code input | Call gateway number + auto poll |
| Firebase project + SHA keys | Shernova app + pk/sk keys + SHA256 register |
| Firebase billing | Shernova credits per verification |
Step 1: Create Shernova account & app
Register at shernova.com, create application, save pk_live_, sk_live_, webhook secret.
Step 2: Register Android signature
Use the same SHA256 you registered in Firebase (Play App Signing or release keystore). POST /v1/apps/:id/android-signatures.
Step 3: Add Flutter SDK
Remove firebase_auth phone verification calls. Add shernova_core package. Initialize with Shernova.init().
Step 4: Replace verification UI
// Firebase Phone Auth — remove this flow
await FirebaseAuth.instance.verifyPhoneNumber(
phoneNumber: phone,
verificationCompleted: (credential) { … },
verificationFailed: (e) { … },
codeSent: (verificationId, forceResendingToken) { … },
codeAutoRetrievalTimeout: (verificationId) { … },
);final session = await verifyPhone(
context: context,
phoneNumber: phone,
);
if (session.status == 'verified') {
// user verified — proceed with sign-up/login
}Step 5: Server-side token validation
If you previously verified Firebase ID tokens on your backend, switch to trusting Shernova webhook verification.completed or poll GET /v1/verifications/:id with your secret key.
Step 6: Configure webhook
Set HTTPS webhook URL to receive signed completion events. See Webhooks.
Step 7: Test & cut over
- Test in staging with trial credits
- Verify webhook signature validation on your server
- Roll out app update removing Firebase phone flow
- Monitor sessions in dashboard
