标签: firebase-admin

FIrebase部署错误:无法找到模块'firebase-admin'

我最近在尝试部署到Firebase时开始收到以下错误(过去成功完成之后).我不确定这可能会有什么变化才能开始发生.如果我运行firebase服务在localhost上服务,一切正常.我的package.json和index.js的要求也在下面.

i  deploying functions, hosting
i  functions: ensuring necessary APIs are enabled...
i  runtimeconfig: ensuring necessary APIs are enabled...
+  runtimeconfig: all necessary APIs are enabled
+  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (46.02 KB) for uploading
+  functions: functions folder uploaded successfully
i  hosting: preparing public directory for upload...
!  Warning: Public directory does not contain index.html
+  hosting: 9 files uploaded successfully
i  starting release process (may …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-admin

14
推荐指数
3
解决办法
1万
查看次数

如何设置存储规则以便运行我的 Firebase 存储模拟器?

当我运行时firebase emulators:start出现此错误

错误:如果没有在 firebase.json 中指定规则文件,则无法启动存储模拟器

在安装存储模拟器之前,我可以像这样设置 Firestore 规则

{
  "firestore": {
    "rules": "./functions/firestore.rules"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  },
  "emulators": {
    "auth": {
      "port": 9099
    },
    "functions": {
      "port": 5001
    },
    "firestore": {
      "port": 8080
    },
    "storage": {
      "port": 9199
    },
    "ui": {
      "enabled": true
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我想我必须在这里制定存储规则。但我不知道怎么办。我找不到这方面的文档

firebase firebase-tools firebase-storage firebase-admin firebase-cli

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

Firebase云功能数据库触发'onCreate不是函数'

为了提高效率,我想使用onCreate方法而不是onWrite但是我遇到了这个错误:

functions.database.ref(...).onCreate不是一个函数.

但是,似乎有一项功能,如文档https://firebase.google.com/docs/reference/functions/functions.database.RefBuilder#onCreate中所述,
我的代码如下所示:

const functions = require('firebase-functions');

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.manager = functions.database.ref('some_ref')
    .onCreate(event =>{
Run Code Online (Sandbox Code Playgroud)


我期待着你的帮助.
提前致谢.

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

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

生成私钥firebase admin sdk

我对firebase很新.我需要私钥来访问我的后端的firebase admin sdk.实际上,我的公司已经使用了firebase很长一段时间,但没有人知道私钥在哪里或者已经生成了它.

在此输入图像描述

所以,在这里我的问题:
1.当我点击生成时,旧私钥会发生什么?我们还能用吗?或关键将是过时的,导致一些服务不起作用?
2.任何平台可以并行使用私钥吗?

谢谢

np:抱歉我的英语不好

firebase firebase-realtime-database firebase-admin

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

“来电者无权”尝试使用 Firebase Admin SDK 创建自定义令牌

错误

打电话时,admin.auth().createCustomToken()我收到以下错误:

Error: The caller does not have permission; Please refer to https://firebase.google.com/docs/auth/admin/create-custom-tokens for more details on how to use and troubleshoot this feature.

提供的文档让我相信我用来初始化 Firebase Admin SDK 的服务帐户没有足够的权限。我不相信是这种情况,所以我想问一下,看看我是否遗漏了什么。

配置

Firebase Admin SDK 在后端初始化,如下所示:

admin.initializeApp({
  serviceAccountId: 'firebase-adminsdk-xxxxx@my-project-id.iam.gserviceaccount.com'
});
Run Code Online (Sandbox Code Playgroud)

从技术上讲,该值是从 env var 引用的,但我已确认此值是正确的。

正在使用的服务帐户具有以下角色:

roles/firebase.sdkAdminServiceAgent
roles/iam.serviceAccountTokenCreator
Run Code Online (Sandbox Code Playgroud)

根据文档,创建自定义令牌所需的权限是iam.serviceAccounts.signBlob. iam.serviceAccountTokenCreator根据此输出,此权限是角色的一部分:

? gcloud beta iam roles describe roles/iam.serviceAccountTokenCreator
description: Impersonate service accounts (create OAuth2 access tokens, sign blobs
  or JWTs, etc).
etag: AA==
includedPermissions:
- iam.serviceAccounts.get
- iam.serviceAccounts.getAccessToken
- …
Run Code Online (Sandbox Code Playgroud)

node.js firebase google-kubernetes-engine firebase-authentication firebase-admin

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

Firebase 管理员在连接到 Auth 模拟器时出现错误 ECONNREFUSED

我正在尝试使用 Firebase Admin SDK 列出我的 Firebase 项目的所有用户。
从 Cloud Auth Service 列出时,以下用于列出用户的函数可以正常工作。

const admin = require('firebase-admin');
const serviceAccount = require('./certs/project-cert.json');

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount)
})

listAllUsers = (nextPageToken) => {
    // List batch of users, 1000 at a time.
    admin.auth().listUsers(1000, nextPageToken)
        .then(function(listUsersResult) {
            listUsersResult.users.forEach(function(userRecord) {
                console.log(userRecord.toJSON());
            });
            if (listUsersResult.pageToken) {
                // List next batch of users.
                listAllUsers(listUsersResult.pageToken);
            }
        })
        .catch(function(error) {
            console.log('Error listing users:', error);
        });
}

Run Code Online (Sandbox Code Playgroud)

然后我将 ENV var 设置为指向模拟器

export FIREBASE_AUTH_EMULATOR_HOST="localhost:9099"
Run Code Online (Sandbox Code Playgroud)

运行相同的listAllUsers函数失败并出现以下错误:

FirebaseAppError: Error while making request: …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-authentication firebase-admin

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

nodejs firebase error RangeError:超出最大调用堆栈大小失败

我有一个来自firebase的错误:

FIREBASE警告:用户回调引发了异常.RangeError:超出最大调用堆栈大小

我没有发现我的错误.

我在这里很迷茫,请帮忙.

我的代码看起来像这样:

app.post('/updateCoords', (req, res)=>{
    var usrID = req.body.id;
    var usrCoords = {
        lat: req.body.lat,
        long: req.body.long
    }
    console.log('userID : '+usrID+' lat : '+usrCoords.lat+' long : '+usrCoords.long);
    var ref = database.ref('users');
    try{
        ref.orderByChild('username').equalTo(usrID).on("value", (snapshot)=> {
            if(!snapshot.val()){
                // Error
                return res.json({msg: 'username is not in D.B', success: false});
            }
            // Success
            admin.database().ref('users/' + usrID + '/currentLocation').update({
                lat: usrCoords.lat,
                long: usrCoords.long
            });
            return res.json({msg: 'user coords changed', success: true});
        });
    }catch(ex){
        console.log('ex /updateCoords = '+ex);
    }
});
Run Code Online (Sandbox Code Playgroud)

node.js express firebase-realtime-database firebase-admin

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

Google App Engine - 节点:找不到模块'firebase-admin'

首次在此部署GAE应用,我正在尝试按照本教程进行操作:https://firebase.googleblog.com/2016/08/sending-notifications-between-android.html(请参阅节点代码部分).

我跑了

npm install firebase-admin --save
npm install request --save
Run Code Online (Sandbox Code Playgroud)

在我的机器上,package.json就在这里,但是当我使用时gcloud app deploy,我在浏览器上打开应用程序时会得到这些日志:

2017-02-10 09:35:02 default[20170210t103151]  module.js:471
2017-02-10 09:35:02 default[20170210t103151]      throw err;
2017-02-10 09:35:02 default[20170210t103151]      ^
2017-02-10 09:35:02 default[20170210t103151]
2017-02-10 09:35:02 default[20170210t103151]  Error: Cannot find module 'firebase-admin'
2017-02-10 09:35:02 default[20170210t103151]      at Function.Module._resolveFilename (module.js:469:15)
2017-02-10 09:35:02 default[20170210t103151]      at Function.Module._load (module.js:417:25)
2017-02-10 09:35:02 default[20170210t103151]      at Module.require (module.js:497:17)
2017-02-10 09:35:02 default[20170210t103151]      at require (internal/module.js:20:19)
2017-02-10 09:35:02 default[20170210t103151]      at Object.<anonymous> (/app/server.js:1:78)
2017-02-10 09:35:02 default[20170210t103151]      at Module._compile (module.js:570:32)
2017-02-10 …
Run Code Online (Sandbox Code Playgroud)

google-app-engine node.js firebase firebase-admin

12
推荐指数
2
解决办法
8327
查看次数

在单元测试期间无法模拟admin.firestore()

我正在阅读如何为firebase模拟谷歌云功能,并且有正确模拟以下代码的问题:

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var db = admin.firestore();
Run Code Online (Sandbox Code Playgroud)

链接中的示例使用以下代码来模拟initializeApp哪些工作正常

admin = require('firebase-admin');
adminInitStub = sinon.stub(admin, 'initializeApp');
Run Code Online (Sandbox Code Playgroud)

现在admin.firestore在firebase-namespace.js中定义如下:

Object.defineProperty(FirebaseNamespace.prototype, "firestore", {
    get: function () {
        var ns = this;
        var fn = function (app) {
            return ns.ensureApp(app).firestore();
        };
        return Object.assign(fn, require('@google-cloud/firestore'));
    },
    enumerable: true,
    configurable: true
});
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种各样的东西来存根,但我失败了

  1. 结果firestore is not a function:

        Object.defineProperty(admin, "firestore", {
            get: function () {
                return 32;
            }
        });
    
    Run Code Online (Sandbox Code Playgroud)
  2. 根本不模拟firestore()并调用失败的原始函数:

        sinon.stub(admin, 'firestore').returns({get() { }});
    
    Run Code Online (Sandbox Code Playgroud)
  3. TypeError:不能存根不存在的自有属性get

       firestoreStub …
    Run Code Online (Sandbox Code Playgroud)

javascript unit-testing sinon firebase-admin google-cloud-firestore

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

使用 Admin SDK 将文件上传到 Firebase 存储

根据Docs,我必须将文件名传递给函数才能上传文件。

// Uploads a local file to the bucket
await storage.bucket(bucketName).upload(filename, {
  // Support for HTTP requests made with `Accept-Encoding: gzip`
  gzip: true,
  metadata: {
    // Enable long-lived HTTP caching headers
    // Use only if the contents of the file will never change
    // (If the contents will change, use cacheControl: 'no-cache')
    cacheControl: 'public, max-age=31536000',
  },
});
Run Code Online (Sandbox Code Playgroud)

我在我的服务器端代码中使用 Firebase Admin SDK (Nodejs),客户端以我作为文件对象获取的表单数据发送文件。当函数只接受通向文件路径的文件名时,我如何上传它。

我希望能够做这样的事情


app.use(req: Request, res: Response) {
 const file = req.file;
// upload file to firebase storage …
Run Code Online (Sandbox Code Playgroud)

node.js express google-cloud-storage firebase firebase-admin

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