SvelteNative集成Firebase Auth报错:已启用仍提示登录提供商禁用
解决Firebase Auth「登录提供商已禁用」错误(Svelte Native环境)
问题场景
使用Svelte Native创建新应用,集成Firebase Auth功能:
- 已安装
@nativescript/firebase-core和@nativescript/firebase-auth依赖 - 已添加Firebase控制台下载的
app/App_Resources/Android/google-service.json文件 - 执行以下登录代码时触发错误:
const test = async () => { try { const user = await firebase() .auth() .signInWithEmailAndPassword("example@gmail.com", "123465798"); console.log(user); } catch (error) { console.log(error); } }; test(); - 错误提示:
Error: The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.
- 已在Firebase控制台的Auth登录方式中启用Email/Password提供商,且确认
google-service.json无误。
排查与解决步骤
确认Firebase控制台的提供商配置
- 打开Firebase控制台,切换到当前项目的「Authentication」→「登录方式」页面
- 确保「电子邮件/密码」提供商的开关处于绿色启用状态,且未设置额外限制规则(比如仅允许特定域名邮箱登录,而测试邮箱不在范围内)
- 核对当前操作的项目ID与
google-service.json中的project_id完全一致,避免选错项目。
刷新配置文件并清理构建缓存
- 从Firebase控制台重新下载最新的
google-service.json文件,覆盖项目中的原文件 - 执行NativeScript清理命令清除旧构建缓存:
ns clean - 重新运行项目:
ns run android
- 从Firebase控制台重新下载最新的
确保Firebase初始化流程正确
在调用Auth方法前,必须先完成Firebase Core的初始化。建议在App.svelte的启动钩子中添加初始化逻辑:import { onMount } from 'svelte'; import { firebase } from '@nativescript/firebase-core'; onMount(async () => { // 初始化Firebase应用 await firebase().initializeApp(); });检查测试账号状态
- 如果测试邮箱尚未注册,需先调用
createUserWithEmailAndPassword创建账号后再登录 - 在Firebase控制台的「Authentication」→「用户」页面,确认该账号未被标记为「禁用」状态。
- 如果测试邮箱尚未注册,需先调用
验证NativeScript构建配置
确认项目的Gradle配置已正确集成Firebase:- 根目录
build.gradle中已添加Google Maven仓库:repositories { google() mavenCentral() } - app目录下的
build.gradle末尾已添加Google Services插件引用(通常由Firebase NativeScript插件自动配置):apply plugin: 'com.google.gms.google-services'
- 根目录
内容的提问来源于stack exchange,提问作者Romain Hoffmann
相关产品推荐
相关产品推荐

