如何在 nextJS getserversideprops 中使用 firebase

2024-01-02

如果有签名用户,我想使用 getServerSideProps 在 Firestore 中获取“示例”文档。 下面的代码不起作用。结果是“无法读取” 我应该怎么办?或者还有其他方法吗?

export const getServerSideProps = () => {
  let currentUser = []

  authService.onAuthStateChanged(async user => {
      if(user) {
        const docRef = dbService.collection('whole_users').doc('sample').get()
        await docRef.then((doc) => {
          if(doc.exists) {
            currentUser.push(doc.data())
          }
        })
      } else {
        console.log("can't read")
      }
    })

  return {
    props: {currentUser}
  }
}

首先: 你打电话get()没有await。将您的代码更改为:

export const getServerSideProps = () => {
  let currentUser = []

  authService.onAuthStateChanged(async user => {
      if(user) {
        const docRef = dbService.collection('whole_users').doc('sample')
        await docRef.get().then((doc) => {
          if(doc.exists) {
            currentUser.push(doc.data())
          }
        })
      } else {
        console.log("can't read")
      }
    })

  return {
    props: {currentUser}
  }
}

第二:onAuthStateChanged仅适用于客户端。要访问服务器端的身份验证状态,您需要将身份验证状态放入提供程序中。Here https://colinhacks.com/essays/nextjs-firebase-authentication是一个如何做到这一点的示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 nextJS getserversideprops 中使用 firebase 的相关文章

  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • Jquery 悬停卡

    我在用着http designwithpc com Plugins Hovercard http designwithpc com Plugins Hovercard 但我不知道如何在悬停卡上声明 var 每个工作描述都有自己的 ID 当悬
  • 如何阻止直接访问我的 JavaScript 文件?

    我使用 Minify 来缩小并缓存所有脚本请求 我只希望我的用户能够访问 JavaScript 文件的缩小版本 缩小位于www example com min我的脚本位于www example com scripts 如何阻止直接访问doc
  • 显示具有多个父代的 D3 树

    我目前有this http bl ocks org mbostock 4339083图已实现 我希望在描述具有多个父节点的子节点时保持结构和可折叠性 有没有办法做到这一点 我研究了力图 但我也想保留一组层次结构 这意味着 1 级的父级可以有
  • Vue 3 Composition API 提供/注入在单文件组件中不起作用

    我正在使用 Composition API 在 VueJS 3 中创建一个库 我实现了提供 注入 如中所述docs https v3 vuejs org guide composition api provide inject html i
  • 如何使用 next.js 导入带有空格的文件?

    我正在摆弄 next js 我有一个 CSV 文件 其中包含一些我想在表格中显示的数据 当我尝试导入 csv 时遇到一个奇怪的错误 static data csv 1 66 Module parse failed Unexpected to
  • 如何在没有 jQuery 的情况下删除 Javascript 中的元素

    我试图通过以下方式从 DOM 中删除 Div a 标签嵌套在其中 我想我正在寻找的是 jQuery 的纯 Javascript 版本 div remove 这是html设置 div a href Click me to remove the
  • 如何正确清理来自 AngularJS 控制器的无效输入的表单?

    我有一个 AngularJS 表单 其中包含 除其他字段之外 类型之一url 后者很重要 因为这会强制相应的输入成为有效的 URL 在某些条件下 例如 要关闭具有此类表单的模式对话框 我想以编程方式清除该表单 为此 我实现了方法reset基
  • 想要动态处理与分页相关的页码显示:ReactJS

    我有一些分页逻辑工作得很好 唯一的问题是我只能让它显示并固定数量的页面可供选择 现在我已经把它放到了 5 页 但我希望它能够根据总记录动态更改 假设我有 100 条记录 每页限制为 10 条 将有 10 页 现在我只能让它以这种方式显示 第
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • JavaScript RegEx:不同的结果:使用字符串和使用正则表达式“文字”构建模式?

    使用 RegExp 文字与字符串之间有什么区别吗 http jsfiddle net yMMrk http jsfiddle net yMMrk String prototype lastIndexOf function pattern p
  • 如何在另一个自定义 Hook 中使用返回值的自定义 Hook?

    我正在使用 React native 其中有一个名为的自定义 HookuseUser使用以下方法从 AWS Amplify 获取用户信息Auth getUserInfro方法 然后获取返回对象的一部分并用它设置一个状态变量 我还有另一个名为
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

  • Velocity 2.0:NoClassDefFoundError:org/apache/velocity/runtime/log/CommonsLogLogChute

    在使用 Velocity 2 0 启动我的 Web 应用程序时 我收到以下错误 Caused by java lang NoClassDefFoundError org apache velocity runtime log Commons
  • 在x64和x86环境中使用PresentationCore和WindowsBase dll

    PresentationCore dll 和 WindowsBase dll 均包含在 Microsoft NET Framework 3 0 中 并且每个 dll 的两个版本都安装到磁盘上 C Program Files Referenc
  • 调用未定义的方法 Closure::query()

    我有以下关闭 dbhProvider function Create connection instance new mysqli localhost USERNAME PASSWORD BLOG return instance 我有以下实
  • Swisscom 应用程序云更新后 Spring Boot HTTPS 重定向循环

    我们正在使用 Swisscom Application Cloud 来运行我们的 Spring Boot 应用程序 在 2018 年 2 月 22 日 迁移到多云环境 之后 瑞士电信状态页 https status developer sw
  • Jquery 隐藏多个div onclick

    我正在制作一个健身应用程序 在每个锻炼页面上我都有一个显示 信息 数据输入 和 进度 的按钮 然而 当单击按钮时 这工作正常 div 层彼此重叠并同时显示 我想要的是主要显示的信息 但当用户单击其他按钮时 其他按钮 div 被隐藏 因此一次
  • spring3 mvc @Valid注释找不到

    我尝试使用 Valid注释 但eclipse总是给出 Valid无法解析为类型 错误 我正在使用 spring3 库 我已将 hibernate validator 4 1 0 Final jar 导入到 WEB INF lib 目录中 然
  • LNK2019:VS 单元测试中未解析的外部符号

    我收到标题中所述的错误 我保证了以下几点 包含目录 包含库和附加包含目录设置正确 在属性中 子系统设置为 CONSOLE 对我的代码的评论 LifeLib 是一个项目 其中包含我想测试一些方法的类 这些类在命名空间 LifeLib 中定义
  • 滚动时保持 SVG 对象静态

    在我的 Web 应用程序中 我正在生成一个 SVG 文件 其中包含一个 标题 当用户向下滚动图像时 我希望该文件在窗口顶部保持可见 我可以想到两种方法来实现这一目标 但我正在寻找任何其他好主意 我的两个想法是 生成两个单独的 SVG 一个是
  • vb.net 中的 Excel 文件

    如何在 vb net 中打开 编辑 读取 Excel 列 例如 我想知道 B 列的值 直到它包含值的单元格 谢谢 使用 ADO Net Here s a link http www dotnetjohn com articles aspx
  • PostgreSQL - 按时间戳值分组?

    我有一张表 其中存储了采购订单 每行都有一个时间戳 指示下订单的时间 我希望能够创建一个报告 指示每天 每月或每年的购买数量 我想我会做一个简单的 SELECT COUNT xxx FROM tbl orders GROUP BY tbl
  • 如何抑制绘制树状图但仍然在seaborn中聚类?

    我想在seaborn中绘制一个聚类图 按行和列进行聚类 我不想绘制树状图 Setting row cluster False or col cluster False删除树状图 但也停止聚类 如何仍然进行 2D 聚类但抑制树状图 这个问题
  • 如何在 iOS 中查找 Couchbase Mobile DB 文件?

    我想在 iOS 中找到 Couchbase Mobile DB 文件位置 并请描述如何打开 db 文件 Thanks 如果您使用的是 CBM 1 4 或更早版本 您可以按照此处所述找到 cblite2 db 文件的位置 https deve
  • 如何将具有固定值的路径缩放为动态可组合大小?

    我有一个简单的Box我想将其剪辑为自定义形状的可组合项 但每当我尝试它时 形状的尺寸仍然非常僵硬且很小 我尝试使用在路径级别上进行缩放Matrix 但无济于事 这是示例 const val clockHand M0 80 52L2 86l2
  • Flex 4 Spark 面板有一个丑陋的灰色顶部

    我有一个 Flex 4 Spark 面板 我通过 PopUpManager 弹出 但它的顶部有一个我无法摆脱的灰色部分 那是什么以及如何删除它 UPDATE 下面是一个示例面板 我只是简单地打电话PopUpManager addPopUp
  • C 中 scanf 中的扫描集行为

    我尝试用 scanf 中的 scanset 做一些事情 但卡在某个地方 当我写的时候 char s1 250 scanf A Z s1 input AHJHkiuy Output AHJH 有了这个 scanf n s1 input abc
  • Joi 验证显示自定义错误消息

    嗨我正在使用 hapi joi 15 1 1 不幸的是 我现在无法更新到最新的 Joi 版本 这是我的验证架构 const schema name Joi string allow max 30 addLine1 Joi string re
  • 使用 NSTask 创建 zip 存档,其中包含包含文件的第一级文件夹

    我的方法适用于从先前创建和填充的临时目录中压缩文件 NSURL destURL self archiveDestURL NSTask task NSTask alloc init task setCurrentDirectoryPath s
  • .NET/CLR 上的 Scala 中的具体化泛型

    Scala 至少在JVM https en wikipedia org wiki Java virtual machine uses 类型擦除 https stackoverflow com tags type erasure info以实
  • php 使用 strtotime 获取一年中第一周的正确日期

    我使用此代码来获取一年中第一周的第一个日期 echo date Y m d strtotime 2018W01 JAN 1 is Monday returned 01 01 echo date Y m d strtotime 2013W01
  • 如何在 nextJS getserversideprops 中使用 firebase

    如果有签名用户 我想使用 getServerSideProps 在 Firestore 中获取 示例 文档 下面的代码不起作用 结果是 无法读取 我应该怎么办 或者还有其他方法吗 export const getServerSideProp