Tag: firebase

Firebase托pipe自己的服务器node.js

我有与firebase数据库的webapp。 我想要在Firebase上托pipe应用程序。 我的应用程序有自己的服务器nodejs和使用websockets。 我如何在Firebase上托pipe我的应用程序? 我如何在Firebase上运行我自己的服务器?

“使用Node.JS的Firebase云function”中的“functions.config()不可用”

Firebase的云端function刚刚发布,我正在按照全新安装的说明操作。 这是“入门”页面。 我已经安装了“npm install -g firebase-tools”,我的所有文件都在我的项目中。 我正在使用WebStorm 2016.3和Node.JS v6.10.0。 我已经安装和设置了firebaselogin和firebase初始化函数。 我成立了。 我的package.json { "name": "functions", "description": "Cloud Functions for Firebase", "dependencies": { "firebase-admin": "^4.1.2", "firebase-functions": "^0.5" }, "private": true } 这些前两行代码工作。 const functions = require('firebase-functions'); const admin = require('firebase-admin'); 但是当我尝试运行这条线时 admin.initializeApp(functions.config().firebase); 我得到这个错误。 Error: functions.config() is not available. Please use the latest version of the Firebase […]

TypeError:firebase.storage不是一个函数

遵循这个例子,我不断收到错误: TypeError: firebase.storage is not a function 从我的代码中的这一行: var storageRef = firebase.storage().ref(); (当我只是尝试从存储指南初始化存储,从firebase的npm站点链接,我得到同样的错误。) 在我的Node.js项目中,我包括以下库: const firebase = require('firebase'); var admin = require('firebase-admin'); const fs = require('fs'); 到目前为止,我已经成功地读取和写入了firebase数据库,使用var db = admin.database()创build对数据库的引用,然后var ref = db.ref("/") 。所以我知道我已经正确地configuration了Firebase和firebase-database。 但是我卡在storage ,并尝试使用相同的错误信息admin.storage().ref()和admin.storage().ref()和admin.storage().ref() firebase.storage().ref("/") 。 我也试过: var storage = firbase.storage(); var storageRef = storage.ref(); 和 const app = firebase.initializeApp(config); var storage = […]

将具有服务帐户的Firebase应用程序部署到Heroku(带有dotenv的环境variables)

我有一个使用Firebase服务帐户的节点应用程序。 我想部署到Heroku的应用程序,但我不想公开我的密钥。 我直接从公共github回购部署,所以我不想在部署中包含服务帐户文件。 我可以采取服务帐户json文件,使每个属性的环境variables,将这些variables添加到Heroku,并部署它。 一切都很好(在我的firebase应用上授权新的Heroku域之后),但有没有更好的方法来做到这一点? 这是有效的,但这样做很痛苦(复制和粘贴每个variables并移动它)。 我错过了一个更简单的方法来做到这一点? 这是我正在做的改变。 从这一行中,从文件中提取证书: admin.initializeApp({ credential: admin.credential.cert('./path/firebase-service-account.json'), databaseURL: "https://my-firebase-app.firebaseio.com" }); 对于这个从环境variables中引入所有相同的东西的对象: admin.initializeApp({ credential: admin.credential.cert({ "type": process.env.FIREBASE_TYPE, "project_id": process.env.FIREBASE_PROJECT_ID, "private_key_id": process.env.FIREBASE_PRIVATE_KEY_ID, "private_key": process.env.FIREBASE_PRIVATE_KEY, "client_email": process.env.FIREBASE_CLIENT_EMAIL, "client_id": process.env.FIREBASE_CLIENT_ID, "auth_uri": process.env.FIREBASE_AUTH_URI, "token_uri": process.env.FIREBASE_TOKEN_URI, "auth_provider_x509_cert_url": process.env.FIREBASE_AUTH_PROVIDER_X509_CERT_URL, "client_x509_cert_url": process.env.FIREBASE_CLIENT_X509_CERT_URL }), databaseURL: "https://my-firebase-app.firebaseio.com" }); 这是用Heroku的服务帐户部署Firebase应用程序的最佳做法吗? 我正在使用dotenv节点模块来完成这一点。

从使用Cloud Functions for Fire上传的文件获取下载url

在Firebase存储中使用Firebasefunction上传文件后,我想获取文件的下载url。 我有这个 : … return bucket .upload(fromFilePath, {destination: toFilePath}) .then((err, file) => { // Get the download url of file }); 目标文件有很多参数。 即使一个名为mediaLink 。 但是,如果我尝试访问这个链接,我得到这个错误: Anonymous users does not have storage.objects.get access to object … 有人可以告诉我如何获得公共下载url? 谢谢

如何在PC上本地testingFirebase的云端function

今天,Firebase发布了其全新的Firebase云端function ,我刚刚创build了一个Hello Worldfunction,并将其部署到我现有的Firebase项目中。 它看起来像捆绑所有的依赖关系,并将其上传到firebase,就像aws lambda函数一样。 但即使对代码进行细微的更改,也需要花费太多的时间来完成,并且还需要良好的互联网连接。 如果您由于某种原因而处于脱机状态,那么您只是在黑暗中编写了哪些代码,直到您有方法在本地计算机上脱机执行和testing这些function。 有没有办法在本地testingFirebase的云端函数?

Firebase云端function非常慢

我们正在研究使用新的Firebase云function的应用程序。 目前发生的事情是一个事务放入队列节点。 然后该函数删除该节点并将其放入正确的节点中。 由于能够脱机工作,因此已经实施。 我们目前的问题是function的速度。 函数本身大约需要400ms,所以没关系。 但有时这些函数需要很长时间(大约8秒),而条目已经被添加到队列中了。 我们怀疑服务器需要时间来启动,因为当我们在第一次之后再次执行操作时。 这需要更less的时间。 有没有办法解决这个问题? 在这里我添加了我们的function的代码。 我们怀疑它没有什么问题,但为了以防万一,我们添加了它。 const functions = require('firebase-functions'); const admin = require('firebase-admin'); const database = admin.database(); exports.insertTransaction = functions.database .ref('/userPlacePromotionTransactionsQueue/{userKey}/{placeKey}/{promotionKey}/{transactionKey}') .onWrite(event => { if (event.data.val() == null) return null; // get keys const userKey = event.params.userKey; const placeKey = event.params.placeKey; const promotionKey = event.params.promotionKey; const transactionKey = […]