跳至内容
WebViewGold 从 Vibe Coding 到 App Store
中文
获取 WebViewGold

后端检查清单

Firebase 应用上架 App Store 和 Google Play:完整检查清单

Firebase Studio、Softgen 和 Databutton 项目依赖 Firebase Auth、Firestore、Storage 和 Hosting。这些都能在 WebViewGold 中运行,但登录弹窗、Apple provider、数据删除和隐私表单需要您有意识地做出选择。在上传第一个构建之前,请逐项完成这份清单。

每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。

  • 审核通过保证 – 否则 14 天内退款
  • 无需编程
  • 一次性付费,免费更新
  • 7×24 小时人工支持
  • 2014 年起德国出品 · ISO 27001

1. 登录:弹窗、重定向还是辅助工具?

大多数生成的 Firebase 代码会调用 signInWithPopup。在桌面浏览器中,它会打开第二个窗口并把结果传回;而在 WKWebView 或 Android WebView 中,弹窗没有可靠的方式把结果传回来,于是登录就卡住了。请把应用流程改为 signInWithRedirect,并在加载时处理 getRedirectResult。

重定向登录在 Apple 平台上也有自己的问题:WebKit 会阻止第三方存储,所以默认的 authDomain(yourproject.firebaseapp.com)可能在往返过程中丢失会话。Firebase 推荐的解决办法是使用您自己的域名作为 authDomain:把应用托管在 Firebase Hosting 上并使用您的自定义域名,这样 /__/auth/handler 就是同源的,再在 Authentication → Settings → Authorized domains 中添加该域名。然后在 WebViewGold 中把同一个域名设为起始 URL。

使用 Google 作为 provider 还会遇到众所周知的 WebView 拦截(“disallowed_useragent”)。WebViewGold 的 Social Login Helper 可以解决这个问题:在 Config.swift 的 google_login_helper_triggers 和 Config.java 的 GOOGLE_LOGIN_HELPER_TRIGGERS 中设置 accounts.google.com 前缀即可。邮箱/密码登录和邮件链接登录都不需要这些。

2. Apple provider(准则 4.8)

只要提供了 Google、Facebook 或其他第三方登录,就必须提供。

  1. Apple Developer 门户

    在您的 App ID 上启用 Sign in with Apple,创建一个 Services ID,网站填写您的 authDomain,返回 URL 填写 https://YOUR-AUTH-DOMAIN/__/auth/handler,然后创建一个 Sign in with Apple 密钥(.p8)。

  2. Firebase 控制台

    Authentication → Sign-in method → Apple:填入 Services ID、Apple Team ID、Key ID 和私钥。Firebase 会替您生成 client secret,因此不像某些其他后端那样需要每六个月手动续期一次。

  3. Web 应用代码

    const provider = new OAuthProvider("apple.com"); provider.addScope("email"); provider.addScope("name"); signInWithRedirect(auth, provider)。让 Apple 按钮在视觉上与 Google 按钮同等分量。

  4. WebViewGold 中无需任何配置

    appleid.apple.com 流程会被自动识别和处理。请通过 TestFlight 在真实 iPhone 上测试;模拟器无法可靠地判断 OAuth 重定向是否正常。

3. 用户数据删除

两大商店都要求用户能在应用内删除自己的账号,Google 还额外要求提供一个用于提交删除请求的网页。

  • 安装官方的“Delete User Data”Firebase Extension。每当一个 Auth 用户被删除时,它会删除您所配置路径下该用户的文档、Realtime Database 节点和 Storage 文件。
  • 应用内按钮:调用 deleteUser(auth.currentUser)。Firebase 要求用户近期登录过,所以要先重新验证身份(输入密码或重新走一次 OAuth 重定向),并妥善处理 auth/requires-recent-login 错误。
  • 数据复杂时的替代方案:一个可调用的 Cloud Function,使用 Admin SDK 删除各集合中的数据,然后调用 auth().deleteUser(uid);扩展仍会清理您配置过的内容。
  • 在您的域名上提供公开页面 /delete-account,说明应用内的删除流程并提供联系表单;把该 URL 粘贴到 Play Console 的数据安全表单中,并在隐私政策中提及删除方式。

出色的工作!无需任何编码就能轻松完成。简单快捷!创作者也提供了大力帮助!

卢卡斯·杜波依斯(Lucas Dubois) · CodeCanyon

4. 既能过审核人员这一关、也能挡住黑客的 Firestore 规则

生成的项目往往从测试模式规则起步,30 天内允许一切操作。规则即将过期时 Firebase 会发邮件提醒您,之后应用就会在生产环境中出问题。请在提交前把它们替换为仅限所有者访问的规则;下面是一个最小化的常见写法。

javascript
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // 每个用户只拥有一个个人资料文档
    match /users/{uid} {
      allow read, write: if request.auth != null && request.auth.uid == uid;
    }
    // 条目归创建它的用户所有
    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;
    }
    // 其他一切默认拒绝
  }
}

5. 托管、推送和域名

主题要做什么WebViewGold 端
托管自定义域名Firebase Hosting → Add custom domain,设置 DNS 记录,等待证书签发。把这个域名用作 authDomain,也用作邮件模板中的 Site URL。Config.swift / Config.java 或 Cloud Builder 中的起始 URL
推送:直接使用 FCM在 Firebase 项目中注册 iOS bundle ID 和 Android 包名,下载 GoogleService-Info.plist 和 google-services.json,在 Cloud Messaging 下上传 APNs 密钥。kFirebasePushEnabled(iOS)和 FIREBASE_PUSH_ENABLED(Android);可选 firebaseTopic;调用 getfirebaseplayerid:// 后,可通过 firebaseplayerid 获取设备 token。文档:iOS 推送、Android 推送
推送:改用 OneSignal用于分群和活动看板,无需 Cloud Functions;它可以与 Firebase 并存,互不冲突。oneSignalID + kPushEnabled / PUSH_ENABLED;对比见推送服务商指南
深度链接Firebase Dynamic Links 已停止服务。邮件链接和分享请使用您自己域名上的 Universal Links 和 App Links。Associated Domains + ShowExternalLink(iOS),IS_DEEP_LINKING_ENABLED(Android)

6. Firebase 相关信号的数据安全和 App Privacy

Google 会把二进制文件中的 SDK 信号与您的回答进行比对;Apple 则希望您申报应用所做的一切,包括 Web 内容。

  • Firebase Auth:邮箱地址和用户 ID,与用户身份关联。在 Play 的“个人信息”以及 Apple 的“联系信息”和“标识符”下申报。
  • Firestore 和 Storage 中的用户内容:“应用活动”/“用户内容”。如果用户会上传照片,请如实说明。
  • FCM 推送:设备 token 算作用于应用功能的设备标识符。如果改用 OneSignal,同样适用。
  • Google Analytics(如果您的 Web 应用加载了它):用于分析的使用数据;除非与广告网络关联,否则不属于 Apple 所定义的跟踪。Android 上的 Crashlytics(TRACKING_EVENT):崩溃日志和诊断数据。
  • 不要为了快点通过而回答“未收集任何数据”;与 SDK 信号不一致是 Play 常见的拒审原因(参见数据安全表单不一致指南)。

常见问题

我必须把 Firebase 原生 SDK 添加到 WebViewGold 项目中吗?

不必。您的 Web 应用继续使用 JavaScript SDK。只有推送或 Crashlytics 才会涉及原生 Firebase 组件,而 WebViewGold 已经内置了它们,通过一个配置开关即可启用。

为什么 Google 登录在 Chrome 中能用,在我的应用里却不行?

Google 会阻止嵌入式 WebView 中的 OAuth。WebViewGold Social Login Helper 会在一个 Google 认可的窗口中打开 Google 登录步骤,并把结果传回您的应用。

Firestore 离线持久化在应用中能用吗?

能,WKWebView 和 Android WebView 都支持 IndexedDB。不过仍请为首次加载启用 WebViewGold 离线页面,因为那时还没有任何缓存。

如何给某个特定用户发送推送?

把通过 getfirebaseplayerid:// 获取的 token(或 OneSignal 订阅 ID)保存到该用户的 Firestore 文档中,然后通过使用 Admin SDK 的 Cloud Function 或 OneSignal REST API 发送。

让您的应用上架商店的三种方式

结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。

自己动手

$109 每个平台,一次性付费

WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。

在主页查看方案

Cloud Builder

$349 每个许可证,一次性附加购买

无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。

Cloud Builder 如何运作 试用免费演示

Full Service

$698 每个平台 $798

把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。

Full Service 详情 服务提供方: WeSetupYourWebViewApp

冬季特惠价格有效期至 2026年12月31日。

准备好发布您的应用了吗?

App Store & Google Play 审核通过保证 – 否则 14 天内退款

想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。

退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。