标签: firebase-admin

Firebase 云消息传递:Firebase Admin SDK 中的设备组发送支持

我正在努力寻找 Firebase Cloud Messaging 是否支持在 v1 HTTP API 中向设备组发送通知的答案。

根据迁移文档,支持发送到设备组。

注意:任何使用设备组消息传递的应用程序都必须继续使用旧版 API 来管理设备组(创建、更新等)。HTTP v1可以向设备组发送消息,但不支持管理。

重要的部分是“HTTP v1 可以向设备组发送消息”

我正在使用firebase-admin-pythonSDK,当发送一条或一组批量消息时,我得到了成功的响应,但推送通知未发送。

SDK 实际上是否支持发送到设备组,其方式与firebase_admin.messaging.sendfirebase_admin.messaging.send_all相同?上面的陈述让我相信它们是这样的,但是推送并没有交付(当使用旧版 FCM API 时,它们确实交付了)

firebase firebase-cloud-messaging firebase-admin

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

然后 Firebase setCustomUserClaims

我的 Web 应用程序的后端有以下使用 Node.js 制作的代码:

admin.auth().verifyIdToken(req.body.token).then((user) => {
    admin.auth().setCustomUserClaims(user.uid, {
      identity: "ns",
      approved: false,
      reviewed: false
    }).then(() => {
      console.log(user);
    })
  })
Run Code Online (Sandbox Code Playgroud)

尽管如此,我在设置自定义用户声明后记录用户令牌。自定义用户声明approved但未reviewed出现在我的令牌中。我认为声明设置正确,但为什么它们没有出现在我的终端日志中?

javascript node.js firebase firebase-authentication firebase-admin

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

Firebase verifyIdToken() 在缓存时是否需要为每个新令牌调用 Firebase API?

我在一个项目中使用 Firebase,其中使用 Firebase 令牌 ID 作为不记名令牌来对用户进行身份验证。

项目工作正常,但我想知道verifyIdToken()缓存时如何工作。

现在,该项目的工作方式如下:

  1. 客户端登录客户端APP并检索Firebase tokenId
  2. 客户端调用服务器使用tokenId作为Bearer token进行授权。
  3. 服务器用于verifyIdToken()验证用户。

问题与方法有关verifyIdToken(),以及是否有必要在每个新令牌上调用 Firebase API。

我读过这个问题,其中说:

verifyIdToken() 还针对性能进行了优化。它缓存 Firebase 令牌公共证书(有效期 6 小时),用于验证本地计算机上的令牌签名。除了下载公共证书之外,不涉及任何 RPC。

另外,这个答案说:

当您调用 verifyIdToken 时,管理 SDK 使用公钥对令牌进行解码并验证签名是否有效。它从 Google 服务器下载此密钥,但会缓存 24 小时

以及评论:

verifyIdToken() 从 Google 服务器获取公钥。但这些会被缓存长达 24 小时,因此 RPC 调用开销会被摊销。

但是,下载并缓存什么证书?来自用户还是项目?

那么,服务器是否需要在每次从客户端获取新数据时调用 Firebase API tokenId,或者服务器可以在没有互联网连接的情况下使用缓存的证书进行解码吗?

主要目标是减少对 Firebase API 的调用次数,因此我想知道如果每 24 小时下载一次 Perm 缓存,服务器是否可以在没有互联网的情况下解码项目的每个有效令牌。

提前致谢。

google-api firebase firebase-authentication firebase-admin

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

firebase admin json 文件可以在 github 上公开吗?

我正在做一个工作申请的用例。第一次使用nodejs + firebase。设置 firebase 后,我看到有一个 xxxx-firebase-adminsdk.json 文件,其中包含 private_key_id 和 private_key 等内容。这与我习惯的 React 有点不同,我知道共享 firestore 配置不会带来任何问题。

该案例应该在公共存储库中共享,但我很确定在公共存储库上公开此文件是不好的做法,对吧?可以选择通过电子邮件或其他方式单独发送它,以便他们能够测试该应用程序?

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

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

访问 Firestore 需要项目 ID 错误

我希望使用 firebase admin-sdk,但由于某种原因,我收到“需要项目 ID 才能访问 Firestore 错误”。

我已经从 firebase 控制台下载了一个 admin-sdk json 文件,并将其放置在与调用它的文件相同的目录中。

opt := option.WithCredentialsFile("../<FILENAME>.json")

凭据文件具有项目 ID,但由于某种原因,该opt变量无法从凭据文件中提取数据,因此当我尝试获取 firestore 客户端时,会发生此错误。

谢谢!

go firebase firebase-admin

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

How to configure vite/rollup to exclude firebase-admin from my clientside code?

I've been using this vite-plugin-ssr with firebase functions happily until one day firebase-admin bailed on me. My setup was working until I deleted my node modules and reinstalled my dependencies. It seems that vite is bundling firebase-admin with the client even though there are no imports in clientside code referring to firebase-admin, only in the .page.server.ts files. How do I specify to vite or rollup to not bundle firebase-admin into the dist/client directory?

\n

I would really appreciate some …

firebase typescript server-side-rendering firebase-admin vite

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

在没有前端的情况下从 firebase auth 模拟器获取用户的未签名令牌

我正在编写一个自定义后端(nestjs),其中我想验证来自 firebase auth 的令牌是否有效并检索用户信息。

我不想使用实际的 firebase 身份验证,因此我最终使用了 firebase 本地模拟器。

现在我想使用 postman 测试用 Nestjs 编写的端点,其中我从 postman 发送未签名的令牌以供 Nestjs 从本地模拟器进行验证。但我无法找到一种方法来创建未签名的令牌而不为其创建 UI,我真的不想花时间创建仅针对console.log令牌的反应应用程序。有没有更好的方法来做到这一点,我可能会错过?

谢谢您的帮助。

firebase firebase-authentication firebase-admin nestjs

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

Firebase Functions 1.0.0迁移:带有Google Service Account凭据的自定义initializeApp()出现问题

我刚刚从beta(v0.9.1)更新到v1.0.0,并遇到了一些初始化问题。根据迁移指南functions.config().firebase现在已弃用。这是我之前的初始化:

const serviceAccount = require('../service-account.json')

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: functions.config().firebase.databaseURL,
  storageBucket: functions.config().firebase.storageBucket,
  projectId: functions.config().firebase.projectId,
})
Run Code Online (Sandbox Code Playgroud)

升级后,我将其更改为以下内容:

admin.initializeApp()
Run Code Online (Sandbox Code Playgroud)

起初,这似乎工作正常,可以识别databaseURL和storageBucket。但是,关于新缺席的credential领域存在问题。要访问Google Cloud Storage,必须填写该字段。我@google-cloud/storage像这样访问我的应用程序中的API:

import { Bucket, File } from '@google-cloud/storage'
import * as admin from 'firebase-admin'

bucket: Bucket = admin.storage().bucket()

    this.bucket
      .upload(filepath, {
        destination: uploadPath,
      })
      .then((fileTuple: [File]) => {
        // after uploading, save a reference to the audio file in the DB
        fileTuple[0]
          .getSignedUrl({ action: 'read', expires: '03-17-2025' })
          .then((url: [string]) => {
            dbRef.child('audioFiles').push(url[0]) …
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage firebase google-cloud-functions firebase-admin

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

使用firebase admin sdk进行REST api身份验证

我有一个REST api,使用jwt令牌完成身份验证.为了使api更安全(用户和身份验证机制),我想使用firebase身份验证.我想知道我们可以使用firebase作为我的REST API的身份验证服务器.

我的理解是客户端应用程序将用户名和密码发送到firebase服务器,他们将提供令牌.使用该令牌客户端应用程序将向我们的服务器发送api调用.我需要在我的服务器中集成firebase admin SDK,并使用admin SDK验证令牌以从我的数据库中获取数据.

当我错的时候请纠正我.

此外,我担心如何管理刷新令牌以保持我的应用程序登录.

请帮我以正确的方式集成它,我使用nodejs/expressjs来创建API.

rest node.js firebase firebase-authentication firebase-admin

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

admin firebase出错:"admin.auth(...).generatePasswordResetLink不是函数"

我通过Node.js(nodemailer)和firebase制作了一个电子邮件服务.

当我在应用程序中创建新用户时,该新用户应该收到带有链接重新密码的欢迎电子邮件.

现在我需要在node.js中实现firebase admin --generatePasswordResetLink

在这行代码中存在问题,错误是generatePasswordResetLink()不是函数:

admin.auth().generatePasswordResetLink(user.email,actionCodeSettings)

// Create user
async function createUser(user) {
  firebase
    .auth()
    .createUser({
      email: user.email,
      password: user.password,
      displayName: `${user.firstName} ${user.lastName}`
    })
// After user is created make a email teamplate and send it
    .then(function(userRecord) {
      let resetLink = ''    
      // Welcome email template
      const output = `
        <p>You have access to the Church Mutual Assignment Tool.</p>
        <p>Follow this link to create new password for your account ${userRecord.email}:</p>
        <p>${this.resetLink}</p>
        <p>Thanks,</p>
        <p>Your Church Mutual Assignment Tool team</p>
      ` …
Run Code Online (Sandbox Code Playgroud)

node.js firebase firebase-authentication firebase-admin

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