我最近在尝试部署到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 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
为了提高效率,我想使用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
我对firebase很新.我需要私钥来访问我的后端的firebase admin sdk.实际上,我的公司已经使用了firebase很长一段时间,但没有人知道私钥在哪里或者已经生成了它.
所以,在这里我的问题:
1.当我点击生成时,旧私钥会发生什么?我们还能用吗?或关键将是过时的,导致一些服务不起作用?
2.任何平台可以并行使用私钥吗?
谢谢
np:抱歉我的英语不好
打电话时,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
我正在尝试使用 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警告:用户回调引发了异常.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) 首次在此部署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) 我正在阅读如何为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)
我已经尝试了各种各样的东西来存根,但我失败了
结果firestore is not a function:
Object.defineProperty(admin, "firestore", {
get: function () {
return 32;
}
});
Run Code Online (Sandbox Code Playgroud)根本不模拟firestore()并调用失败的原始函数:
sinon.stub(admin, 'firestore').returns({get() { }});
Run Code Online (Sandbox Code Playgroud)TypeError:不能存根不存在的自有属性get
firestoreStub …Run Code Online (Sandbox Code Playgroud)javascript unit-testing sinon firebase-admin google-cloud-firestore
根据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
firebase-admin ×10
firebase ×8
node.js ×5
express ×2
javascript ×2
firebase-cli ×1
sinon ×1
unit-testing ×1