标签: firebase-admin

如何在Firease Admin SDK中检查当前密码是否有效?

我有一个基于Firebase的应用程序。要求是通过输入和来更新帐户密码currentPasswordnewPassword

在服务器上(firebase云功能+ admin sdk),我需要检查提供的内容currentPassword是否有效。

首次创建帐户时,firebase会自动对密码进行加密,并且只给我哈希值。

问题是- 这种加密是在后台自动完成的

在无法访问加密方法的情况下,我无法获取的哈希值currentPassword以将其与实际密码的存储哈希值进行比较。以查看这2个哈希值是否匹配。

那么我怎样才能检查是否currentPassword有效呢?如何访问firebase-auth用于加密的相同方法?

到目前为止,我找不到任何相关内容。我在这里使用错误的方法吗?为什么很难找到它?

firebase firebase-authentication firebase-admin

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

如何设置Firestore的日志级别?

如何设置Firestore的日志级别?

根据这里的文档,我应该使用setLogLevel方法,但我看不到Firestore客户端对象的方法,比如FirestoreClient.getFirestore().

java firebase firebase-admin google-cloud-firestore

5
推荐指数
3
解决办法
1537
查看次数

如何使Firebase Functions充当用户而不是管理员?

我的客户端应用程序正在通过Firebase Functions创建的API访问Firestore。但是,Firebase Functions导入firebase-admin会绕过所有定义的安全规则。有什么方法可以使我的HTTP触发Function充当特定用户(例如,通过将访问令牌从客户端传递到服务器),从而使Function也可以在Firebase Functions的影响下工作。

node.js firebase google-cloud-functions firebase-admin google-cloud-firestore

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

找不到模块:导入 firebase-admin 时无法解析“http2”

        Failed to compile
    ./node_modules/@grpc/grpc-js/build/src/channel.js
    Module not found: Can't resolve 'http2' in '/Users/Michael/Development/Projects/mpsa-ntcs/node_modules/@grpc/grpc-js/build/src'

This error occurred during the build time and cannot be dismissed.
Run Code Online (Sandbox Code Playgroud)

将 firebase-admin 导入我的应用程序时,我不断收到此错误。我尝试更新 GRPC,尝试降级/升级节点,重新安装节点 + npm ......一切!

任何人都知道任何解决方法吗?

谢谢!

npm firebase reactjs firebase-admin

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

Firestore - 嵌套查询

我对 firebase 真的很陌生,老实说,我发现查询很难写。我正在使用 python 编写一个脚本,firebase_admin我希望查询/答案在 python 代码中,但在任何其他编程语言中都可以。

这是我的一份文件,一份文件包含photos

photos: {
    id1: true
    id2: true
}
Run Code Online (Sandbox Code Playgroud)

我想成为 ale 来检索它们在照片对象中具有id1 的所有项目,对此的查询是什么?

python firebase firebase-admin google-cloud-firestore

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

如何根据自定义声明从 Firebase 身份验证中获取用户?

我开始在我的 Firebase 项目中使用自定义声明来为我的应用实施基于角色的授权系统。

我将有一个 firebase-admin 脚本,它将{admin: true}为特定用户的uid. 这将帮助我编写更好、更清晰的 Firestore 安全规则。

admin.auth().setCustomUserClaims(uid, {admin: true})

到现在为止还挺好。我的问题是我还需要一个仪表板页面来让我知道哪些用户当前是我的应用程序中的管理员。

基本上我需要一种方法来根据自定义声明查询/列出用户。有没有办法做到这一点?

从这个答案中,我可以看到这是不可能的。

但也许,是否至少有一种方法可以检查(使用 Firebase 控制台)customUserClaims设置为特定用户的内容?

我当前的解决方案是将该信息(管理员uid's)存储admin-users在我的 Firestore 中的一个集合中,并使该信息与customClaims我设置或撤销的任何管理员保持同步。你能想到更好的解决方案吗?

firebase firebase-admin google-cloud-firestore

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

如何使用 Admin API 在 Firebase Storage 中创建文件夹

目标:将文件上传到 Firebase 存储中的文件夹

例如

default_bucket/folder1/file1
default_bucket/folder1/file2
default_bucket/folder2/file3
Run Code Online (Sandbox Code Playgroud)

使用 Firebase客户端,我可以像这样将文件上传到 Firebase 存储中的文件夹:

    const storageRef = firebase.storage().ref();
    const fileRef = storageRef.child(`${folder}/${filename}`);
    const metadata = {
      contentType: file.type,
      customMetadata: { }
    };
    return fileRef.put(file, metadata);
Run Code Online (Sandbox Code Playgroud)

如果该文件夹不存在,则会创建它。

但是,我还没有设法使用 Admin SDK 在服务器端做同样的事情。

下面的代码将文件上传到默认存储桶中。

但是,我想将文件上传到默认存储桶中的命名文件夹中。

客户端向 GCF 发出 POST 请求,发送文件和文件夹名称。

Busboy 用于额外的文件夹名称和文件,并将它们传递给上传功能;它上传文件,然后为其返回一个下载链接。

索引.js

const task = require('./tasks/upload-file-to-storage');

app.post('/upload', (req, res, next) => {
  try {
    let uploadedFilename;
    let folder;

    if (req.method === 'OPTIONS') {
      optionsHelper.doOptions(res);
    } else if (req.method === 'POST') {
      res.set('Access-Control-Allow-Origin', '*'); …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-storage firebase-admin

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

作为管理员,我可以修改 Firebase 用户的电子邮件地址吗?

我们有一个用户使用无效的电子邮件地址 ( @gmail.comp) 进行注册,因此一旦他失去会话,他将被永久锁定,因为密码重置电子邮件不会发送给他。

我们没有内置“更改您的电子邮件”功能,即使我们这样做了,他也可能不知道他的电子邮件地址是错误的。作为管理员,我可以更改用户的电子邮件地址吗?似乎firebase.auth().currentUser.updateEmail()只有当我的用户触发请求时才有效。

javascript firebase-authentication firebase-admin

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

我在服务或部署Firebase托管功能时遇到问题

Cloud Functions模拟器需要安装模块“ firebase-admin”。该程序包在您的package.json中,但不可用。您可能需要在功能目录中运行“ npm install”。

在遇到该问题之前,我的项目运行得很好。任何帮助,请告诉。谢谢。{下面是我所得到的图像}

我在文件夹deletetest中创建了一个新项目,但最初失败。

node.js firebase firebase-tools google-cloud-functions firebase-admin

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

如何在 next.js 中使用 firebase 的 firestore/admin sdk

我正在使用 firebase 和 next.js 构建应用程序

我对这个设置相当陌生,对 SSR 完全陌生,firebase 文档让我感到困惑。

目前,我正在使用 firebase 函数来运行 next.js,这就像一个魅力。但是现在,我想使用firestore。根据文档,我看到了两种在我的项目中使用它的方法(如果我做对了)。第一个是“网络”解决方案,它对我没有好处,因为我相信它不是 SSR,而我的应用程序的全部意义就在于此。

另一个是“node.js”解决方案,它在 firebase 函数上运行,这对我来说更有意义。我无法弄清楚的部分是将它与 Next.js 一起使用

在我当前的设置中,我正在将我的 next.js 应用程序构建函数文件夹中,在函数文件夹中,我可以引用我使用“node.js”解决方案创建的 databaseref 对象,但是如何构建我的下一个应用程序之前引用它? 那么当我不在函数文件夹中时?

设置:

- src
  - utils
  - pages
    - index.js
    - signin.js
    - // etc.
- functions 
  - next // this is the output folder of my 'src' build
  - index.js 
  - // etc.
Run Code Online (Sandbox Code Playgroud)

在里面functions/index.js我可以做:

- src
  - utils
  - pages
    - index.js
    - signin.js
    - // etc. …
Run Code Online (Sandbox Code Playgroud)

firebase reactjs server-side-rendering firebase-admin next.js

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