标签: firebase-authentication

如何在 React 中的条件语句后使用钩子?

我使用React firebase hooks 库有以下代码:

\n
    // load user state \n    const [user, loadingAuthState, errorAuthState] = useAuthState(auth);\n\n    // user is loading...\n    if(loadingAuthState)\n    {\n      return <div>\xd7\x98\xd7\x95\xd7\xa2\xd7\x9f...</div>\n    }\n    // an error has occured\n    else if(errorAuthState)\n    {\n      alert(errorAuthState);\n      return <Redirect to="login"/>\n    }\n    // if the user is not set, return to the login page\n    else if(!(user))\n    {\n      return (<Redirect to="/login"/>)\n    }\n\n    // load data from the user using the user\'s ID.\n    const [value, loading, error] = useDocumentData(doc(db, "users", user.uid));\n
Run Code Online (Sandbox Code Playgroud)\n

我收到此错误:

\n
\n …

reactjs firebase-authentication

1
推荐指数
1
解决办法
1929
查看次数

如何在没有 AuthContext 的情况下创建私有路由

我正在尝试创建从登录和注册页面到仪表板页面的私有路由,但是我偶然发现的所有教程和指南都需要某种 AuthContext 事物,并且我没有使用 AuthContext 实现我的身份验证过程。
我尝试了不同的方法,但都不起作用,并且当我到达仪表板页面时最终给了我一个空白页面,我该怎么做才能使其成为私有路线?顺便说一句,使用 Firebase v9。

注册.js

import './Signup.css'
import React, { useState } from 'react';
import { Link, useHistory } from 'react-router-dom';
import { auth }from '../../../firebase';
import { createUserWithEmailAndPassword, onAuthStateChanged } from 'firebase/auth';
import { Typography, Container, TextField, Button, Alert } from '@mui/material';

const Signup = () => {
    const [email, setEmail] = useState('');
    const [password, setPassword] = useState('');
    const [confirmPassword, setConfirmPassword] = useState('');
    const [error, setError] = useState('');
    const [user, setUser] = useState({});
    const history …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router firebase-authentication react-router-dom

1
推荐指数
1
解决办法
778
查看次数

类型错误:firebase_compat_app__WEBPACK_IMPORTED_MODULE_2__.default.default.auth 不是函数

我正在尝试通过 firebase 添加身份验证,但它给了我一个错误

类型错误:firebase_compat_app__WEBPACK_IMPORTED_MODULE_2__.default.default.auth 不是函数

这是所有验证代码

import Head from "next/head";

// var firebase = require("firebase");

import firebase from "firebase/compat/app";
import "firebase/auth";

import { useAuthState } from "react-firebase-hooks/auth";
import Reddit from "../components/Reddit";

firebase.initializeApp({
  apiKey: "<api-key>",
  authDomain: "<auth-domain>",
  projectId: "<project-id>",
  storageBucket: "<storage-bucket>",
  messagingSenderId: "166670883433",
  appId: "1:166670883433:web:f24816c8fe909b0f89e0f8",
});

const auth = firebase.default.auth();

const [user] = useAuthState(auth);

export default function Home() {
  return (
    <div className="h-screen bg-black text-white">
      <Head>
        <title>Reddit - Dive into anything!</title>
        <link rel="icon" href="/logo.svg" />
      </Head>

      {user ? <Reddit /> : …
Run Code Online (Sandbox Code Playgroud)

firebase reactjs firebase-authentication next.js

1
推荐指数
1
解决办法
3114
查看次数

SwiftUI:没有这样的模块“FirebaseAuth”

当我尝试在我的应用程序中使用 Apple 功能设置 Firebase 登录时,遇到了一个奇怪的问题。

需要导入才能FirebaseAuth实现OAuth功能。当我尝试导入它时,出现错误:“ No such Module 'FirebaseAuth'”。我已经使用包管理器添加了包依赖项,FirebaseAuth 就在那里...但它仍然给出错误。请参阅下面的屏幕截图。

在此输入图像描述

简单地导入Firebase不会给出导入错误,但是在尝试使用身份验证功能时仍然会出现错误。请参阅下面的屏幕截图在此输入图像描述

我在其他地方寻找解决方案,但其他遇到与我相同问题的人使用 Cocoapods 来安装软件包,因此他们的解决方案不适用于此处。

我使用的是 Xcode 13.0

swift firebase-authentication firebaseui swiftui

1
推荐指数
1
解决办法
949
查看次数

使用 firebase 和 flutter 进行电话身份验证

我正在编写一个使用电话身份验证的 flutter 应用程序。我目前正在 iPhone 12 模拟器上运行该应用程序,当我测试该应用程序并实现电话号码时,我没有按计划从 firebase 收到 6 位数代码。我认为是因为其中提到的一个引起了共鸣。

    1. Firebase 无法使用假号码将代码发送到模拟器。
    1. 我需要更改 firebase/flutter 项目的一些设置,以便它能够按预期工作。
    1. 我还需要发送带有区号的电话号码。
    1. 我的代码是错误的或者没有做我想要它做的事情。

(我还没有苹果开发者帐户,所以我给了 firebase 一个测试号码和代码,这样当我输入假号码时,我仍然可以将代码发送到应用程序(不是作为推送通知))。

该应用程序的一些要点:

如果需要的话,我可以在真实设备上测试该应用程序。
我现在不需要获取推送通知,我只需将验证码打印到控制台,这样我就会看到代码是否有效。
我想在将电话号码发送到此页面(验证页面)后立即开始验证过程,
现在我使用的是不带区号的完整号码。

我可以为模拟器使用假号码吗?或者我需要一个真正的?

谢谢您,希望您能帮助解决我的问题。

这是我的代码(仅验证部分):

// imports are here

enum Status { waiting, error }

class VerificationCode extends StatefulWidget {
  const VerificationCode({Key? key, this.number}) : super(key: key);
  final number;
  @override
  _VerificationCodeState createState() => _VerificationCodeState(number);
}

class _VerificationCodeState extends State<VerificationCode> {
  late final phoneNumber;
  final _verKey = GlobalKey<FormState>();
  late String _verCode;
  late double _formHeight;
  final FirebaseAuth _auth = …
Run Code Online (Sandbox Code Playgroud)

ios-simulator dart firebase firebase-authentication flutter

1
推荐指数
1
解决办法
4184
查看次数

自定义 Firebase 电子邮件验证模板和操作处理程序

我想自定义电子邮件模板(使用触发电子邮件扩展模板)以向用户发送验证链接。

据我所知,无法从 Firebase 控制台更改模板,因为它可以防止垃圾邮件。

我知道能够自定义操作电子邮件处理程序(单击验证电子邮件中的链接时用户登陆的页面),以及emailVerified手动更新身份验证用户属性的能力。

还有一种方法可以生成 firebase 会使用的验证链接吗?具有以下属性的一种:

  • 模式
  • 出库代码
  • API密钥
  • 继续网址

我理想的解决方案是在使用生成的验证链接注册时向用户发送自定义模板。将用户定向到自定义处理程序页面,并使用文档applyActionCode()中所示的函数来验证电子邮件(我希望这会隐式更新记录上的属性。)emailVerifiedAuth.User

firebase firebase-authentication firebase-extensions

1
推荐指数
1
解决办法
1697
查看次数

flutter: [firebase_storage/unknown] 发生未知错误,请检查服务器响应

从 IOS 模拟器中,选择头像图像、输入用户名、电子邮件、密码和个人描述后,我应该会看到“成功”作为响应。但是我不断收到此错误响应,如下所示:“[firebase_storage/unknown]发生未知错误,请检查服务器响应。”

[更新] 我能够通过编辑 Firebase 存储规则来解决此问题,方法是省略“:if false”:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

dart firebase firebase-authentication flutter

1
推荐指数
1
解决办法
2440
查看次数

flutter firebase Auth 中不同类型帐户的注销按钮

我有一个带有多个登录选项(电子邮件和密码、Google 帐户、电话号码)的 flutter 应用程序。用户登录应用程序后,他将拥有一个抽屉。该抽屉内有一个注销按钮,当用户按下该按钮时,应将其注销并将其送回注册页面。所以我一直在使用 firebase auth 的注销实例 await FirebaseAuth.instance.signOut();

但是自从我添加了谷歌登录选项后,我开始面临一个问题,即对于谷歌注销,我需要先断开用户连接await googleSignIn.disconnect(); 所以我将这一行添加到注销功能中,如下所示:

  Future<void> SignOut() async {
 await googleSignIn.disconnect();
 await FirebaseAuth.instance.signOut();
 Navigator.pushAndRemoveUntil(
   context,
   MaterialPageRoute(
     builder: (BuildContext context) => AuthPage(),
   ),
       (route) => false,
 );}
Run Code Online (Sandbox Code Playgroud)

当用户使用 google 登录时,此按钮工作正常,但如果他使用不同的方法登录,则会引发错误:

未处理的异常:PlatformException(状态,无法断开连接。,null,null)

如何一键处理不同类型的用户退出?

dart firebase-authentication google-signin flutter

1
推荐指数
1
解决办法
852
查看次数

为什么此代码无法在 firebase 中发送密码重置链接?

我是 firebase 新手,我正在尝试在 React.js 中处理 firebase 用户身份验证。我确实设法使用电子邮件和密码创建用户。但是,现在我想向用户发送一个电子邮件链接以重置其密码。

我的代码目前看起来像这样。

// This line of code belongs to the top
import { auth } from '../firebaseConfig'

//This part goes under the React component
    <p onClick={async () => {
      try{
        await sendPasswordResetEmail(auth, // My Email Id)
        alert('Password reset link has been sent to your email')
      }
      catch(err){
        alert(err)
      }
    }}
    >Forgot your Password ?</p>
Run Code Online (Sandbox Code Playgroud)

但是,我没有收到任何错误消息,但收到了一条警告消息:“密码重置链接已发送到您的电子邮件。” 不幸的是,我没有收到任何电子邮件。请注意,出于测试目的,我已经给出了我自己的电子邮件 ID 作为参数。

javascript firebase reactjs firebase-authentication

1
推荐指数
1
解决办法
1434
查看次数

当前域未获得 OAuth 操作授权

大家好,我有 vite 应用程序,我使用了 firebase google auth 。它工作正常,但是当我将它部署在 vercel 上时,它给了我这个错误:

当前域未获得 OAuth 操作授权。这将阻止signInWithPopup、signInWithRedirect、linkWithPopup 和linkWithRedirect 工作。将您的域 (todomarwenlabidi.vercel.app) 添加到 Firebase 控制台 -> 身份验证部分 -> 登录方法选项卡中的 OAuth 重定向域列表。

这是我的应用程序链接:https ://todomarwenlabidi.vercel.app/

我将域添加到授权域 看看这张照片

这是我的 firebase 配置文件:

const firebaseConfig = {
        apiKey:import.meta.env.VITE_API_KEY ,
        authDomain: "todo-app-97ae2.firebaseapp.com",
        projectId: "todo-app-97ae2",
        storageBucket: "todo-app-97ae2.appspot.com",
        messagingSenderId: "540711457418",
        appId:import.meta.env.VITE_APP_ID ,
};
Run Code Online (Sandbox Code Playgroud)

authentication firebase reactjs firebase-authentication vercel

1
推荐指数
1
解决办法
1890
查看次数