Do it yourself
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main pageBackend checklists
Firebase Studio, Softgen and Databutton projects lean on Firebase Auth, Firestore, Storage and Hosting. All of it runs inside WebViewGold, but sign-in popups, the Apple provider, data deletion and the privacy forms need deliberate choices. Work through this list before you upload the first build.
From $109 one-time per platform, or let our team do it all from $698.
Most generated Firebase code calls signInWithPopup. In a desktop browser that opens a second window and hands the result back; inside a WKWebView or Android WebView the popup has no reliable way to return, so logins hang. Switch the app flow to signInWithRedirect and handle getRedirectResult on load.
Redirect sign-in has its own catch on Apple platforms: WebKit blocks third-party storage, so the default authDomain (yourproject.firebaseapp.com) can lose the session during the round trip. Firebase's recommended fix is to use your own domain as authDomain: host the app on Firebase Hosting under your custom domain so /__/auth/handler is same-origin, and add that domain under Authentication → Settings → Authorized domains. Then set the same domain as the start URL in WebViewGold.
Google as a provider adds the known WebView block ("disallowed_useragent"). WebViewGold's Social Login Helper solves it: set google_login_helper_triggers in Config.swift and GOOGLE_LOGIN_HELPER_TRIGGERS in Config.java to the accounts.google.com prefixes. Email/password and email-link sign-in need none of this.
Required as soon as Google, Facebook or another third-party login is offered.
Enable Sign in with Apple on your App ID, create a Services ID with your authDomain as the website and https://YOUR-AUTH-DOMAIN/__/auth/handler as the return URL, and create a Sign in with Apple key (.p8).
Authentication → Sign-in method → Apple: enter the Services ID, Apple Team ID, Key ID and the private key. Firebase generates the client secret for you, so there is no six-month renewal chore as with some other backends.
const provider = new OAuthProvider("apple.com"); provider.addScope("email"); provider.addScope("name"); signInWithRedirect(auth, provider). Give the Apple button the same visual weight as Google.
The appleid.apple.com flow is detected and handled automatically. Test on a real iPhone via TestFlight; the Simulator is not a reliable judge of OAuth redirects.
Both stores require that users can delete their account from inside the app, and Google additionally wants a web page for deletion requests.
deleteUser(auth.currentUser). Firebase requires a recent login for this, so reauthenticate first (password prompt or a fresh OAuth redirect) and handle the auth/requires-recent-login error gracefully.auth().deleteUser(uid); the extension still cleans up what you configured.
Great work! Never coded anything but managed to work with this. Easy and fast! Also with great help from the creators!
Generated projects often start with test-mode rules that allow everything for 30 days. Firebase emails you when they are about to expire, and the app then breaks in production. Replace them with owner-only rules before submission; here is a minimal, common shape.
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Each user owns exactly one profile document
match /users/{uid} {
allow read, write: if request.auth != null && request.auth.uid == uid;
}
// Items belong to the user who created them
match /items/{itemId} {
allow read: if request.auth != null && resource.data.ownerId == request.auth.uid;
allow create: if request.auth != null && request.resource.data.ownerId == request.auth.uid;
allow update, delete: if request.auth != null && resource.data.ownerId == request.auth.uid;
}
// Everything else is denied by default
}
}| Topic | What to do | WebViewGold side |
|---|---|---|
| Hosting custom domain | Firebase Hosting → Add custom domain, set the DNS records, wait for the certificate. Use this domain as authDomain and as the Site URL in email templates. | Start URL in Config.swift / Config.java or the Cloud Builder |
| Push: FCM directly | Register the iOS bundle ID and Android package name in the Firebase project, download GoogleService-Info.plist and google-services.json, upload an APNs key under Cloud Messaging. | kFirebasePushEnabled (iOS) and FIREBASE_PUSH_ENABLED (Android); optional firebaseTopic; the device token is available as firebaseplayerid after getfirebaseplayerid://. Docs: iOS push, Android push |
| Push: OneSignal instead | For segments and a campaign dashboard without Cloud Functions; it sits next to Firebase without conflict. | oneSignalID + kPushEnabled / PUSH_ENABLED; comparison in the push provider guide |
| Deep links | Firebase Dynamic Links has been discontinued. Use Universal Links and App Links on your own domain for email links and sharing. | Associated Domains + ShowExternalLink (iOS), IS_DEEP_LINKING_ENABLED (Android) |
Google compares SDK signals in the binary with your answers; Apple expects you to declare everything the app does, web content included.
TRACKING_EVENT): crash logs and diagnostics.No. Your web app keeps using the JavaScript SDK. Native Firebase components are only involved for push or Crashlytics, and WebViewGold includes them behind a config switch.
Google blocks OAuth inside embedded WebViews. The WebViewGold Social Login Helper opens the Google step in a window Google accepts and returns the result to your app.
Yes, IndexedDB is available in WKWebView and the Android WebView. Still enable the WebViewGold offline screen for the first load, when no cache exists yet.
Store the token from getfirebaseplayerid:// (or the OneSignal subscription ID) in the user's Firestore document and send from a Cloud Function with the Admin SDK or the OneSignal REST API.
Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main page$349 per license, one-time add-on
No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.
How the Cloud Builder works Try the free demo$698 per platform $798
Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.
Full Service details Powered byWinter Sale prices valid until December 31, 2026.
App Store & Google Play approval guarantee – or your money back within 14 days
Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.
Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.