小编new*_*der的帖子

如何使用 Firebase 身份验证监听电子邮件验证事件并做出本机反应?

编辑-这个问题仍然没有答案。有一个想法可以听onIdTokenChanged,但是令牌每小时刷新一次,这对我来说不是实际的解决方案。我在这里发布了后续问题,如果人们可以帮助我的话,我会得到帮助,因为我已经坐了一个星期了这个问题。

我正在编写一个简单的反应本机应用程序,并且我想仅在用户验证其电子邮件后才显示我的主页。据我了解,没有侦听器可以用来侦听用户已验证其电子邮件的事件。我正在使用firebase.auth().onAuthStateChanged((user) => {....}),但侦听器onAuthStateChanged是在用户登录或注册后调用的,而不是在用户验证其电子邮件后调用的。建议使用很少的地方,firebase.auth().user.reload()以便它将重新加载当前用户并从数据库中获取验证状态。但是,我不认为这是一个解决方案,因为我不知道何时应该重新加载当前用户,即我不知道何时单击验证链接。所以这个问题的可能解决方案是:

  1. 向用户发送6位确认码,并等待用户在应用程序中输入;用户输入后,如果代码相同,我会刷新用户。但是我不知道如何使用 firebase 发送自定义验证电子邮件。我检查了文档,但这对我没有帮助。如果有人可以向我指出用 React Native 编写的示例,或者使用自定义电子邮件编写一个小型工作示例,我可以将其发送给用户(再次使用 React Native),那么我会同意的!编辑- 这似乎不是可能的解决方案,因为 Firebase 不允许您自定义电子邮件
  2. 我是否可以覆盖 onAuthStateChanged 侦听器?如果用户的电子邮件已通过验证或未验证,它会侦听更改吗?如果这是一个好主意,有人可以向我指出onAuthStateChangedreact-native中当前的实现,这样我就可以在覆盖时将其视为“灵感”吗?或者如果有人以前做过类似的事情,你能给我举个例子吗?
  3. 我已经阅读了一些使用深层链接并在单击链接时中断事件的建议,但我不确定如何执行此操作,或者即使这是问题的正确解决方案。
  4. firebase.auth().user.reload()有些人建议在应用程序关闭并重新打开时使用。这是基于这样的假设:当向用户发送链接时,为了让他们单击该链接,他们需要关闭应用程序,然后再次重新打开它。我认为这是一个非常强有力的假设,考虑到他们可能通过笔记本电脑验证他们的电子邮件并且永远不会关闭应用程序,所以我认为这也不是一个好的解决方案。

显然,这似乎是一个众所周知的问题,但没有太多好的解决方案。我认为最好的解决方案是向用户发送 6 位验证码,确认该代码后,我将重新加载当前用户,选择该字段emailVerified,它将设置为 true,然后我将显示主屏幕。但是,有人可以帮助我如何在 React Native 和 Firebase 中发送自定义电子邮件吗?

如果有人有任何其他建议,请告诉我!

firebase react-native firebase-authentication

9
推荐指数
2
解决办法
8925
查看次数

如何增加 Firebase 身份验证限制?

我目前正在编写一个使用 Firebase 进行身份验证的项目。我进入这个状态:

帐户创建和删除限制

操作限额

新帐户创建 100 个帐户/IP 地址/小时

删除账户 10个账户/秒

这不可能是真的吧?我的意思是每小时 100 个新帐户的报价很低,对吧?Firebase 应该帮助项目快速扩展,为什么他们会如此限制新用户帐户?我可以做些什么来增加这个限制吗?

firebase firebase-authentication

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

由于 AsyncStorage 和 firebase auth 问题,升级博览会无法启动

我读到的有关该主题的大多数问题都说他们收到了Warning,而我收到了Error,但我无法运行我的项目。

今天我将expo-sdk从v.45升级到v.48。从那时起,我一整天都在与以下错误作斗争: Android Bundling complete 118ms ERROR Invariant Violation: AsyncStorage has been removed from react-native core. It can now be installed and imported from '@react-native-async-storage/async-storage' instead of 'react-native'

在我的项目中,我确实使用了AsyncStorage,但是,我已从正确的包中导入了它。据我研究,这个问题是由于firebase-auth使用了AsyncStorage错误的包而导致的。我在互联网上尝试和阅读的所有内容都不适合我。主要是人们建议使用const auth = initializeAuth(app, { persistence: getReactNativePersistence(AsyncStorage)});我也遇到了麻烦(每个人都建议从那里导入它firebase/auth/react-native';,但我无法从那里导入它)

我的主要问题是为什么我无法开始我的博览会。每个人都说这个问题是一个警告,但我确实收到了一个错误,并且我无法启动我的项目。

我的package.json:

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject",
    "debug": "firebase emulators:start --inspect-functions" …
Run Code Online (Sandbox Code Playgroud)

firebase reactjs react-native expo

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