Tag: firebase

使用NodeJS的Firebase中的事务数据为null

我在NodeJS中有以下代码: productsRef.child(localProduct.productid).child('quantity').transaction(function(data) { console.log('old data: ' + data); if (data != null) { //do a bunch of processing } else { //console… } return data; }).then(function() { //do something }).catch(function(error) { //console… }); 在大多数情况下(我会说99%),这工作正常。 我在开始的时候确实是空的,但是后来得到了一个真正的价值并继续前进。 但是,在剩余的1%的情况下,我没有得到真正的价值,只是零,就是这样。 我不知道为什么会发生这种情况。 有任何想法吗?

BigQuery读取ECONNRESET

将Firebase云端函数与Google BigQuery结合使用时。 有时这个函数被触发时会随机抛出一个错误。 这是我们的错误日志: Error: read ECONNRESET at exports._errnoException (util.js:1026:11) at TLSWrap.onread (net.js:569:26) 这里是我的同事的代码。 const bigQuery = require('@google-cloud/bigquery'); const admin = require('firebase-admin'); const database = admin.database(); exports.updateAllPlaceStatistics = (request, response) => { const secret = request.query['secret']; if (secret !== 'secret') { return response.json({message: 'Request failed!'}); } const big = bigQuery(); return big.query({ query: [ 'SELECT […]

在没有NPM的情况下使用Firebase应用程序服务器(Node.js)

我为我的聊天应用程序使用了firebase数据库,现在我想从我的服务器(不使用Firebase控制台)向我的应用程序发送通知。 所以我想发送通知,每当firebase数据库触发与相关数据,至今我知道(可能是我错了。请更正我)如果我想听实时数据库触发我需要使用的Firebase函数和应用程序服务器上,我需要安装NPM命令行工具来监听应用程序服务器上的firebase数据库触发器,后者向FCM服务器发出通知请求。 所以,我的问题是我的服务器不支持NPM和node.js,所以我不能安装和从应用程序服务器听Firebase数据库的变化。 我在我的研究期间,我来了解几个PHP的SDK发送通知,但没有听到应用程序服务器上的Firebase数据库的变化。 有没有其他的方法可以帮助我在Firebase数据库中侦听更改,通过这个我可以向FCM服务器发送通知请求。 关心Ritu

Firebase HTTP云端函数.send()返回什么?

我正在尝试从我的Android应用程序获取Firebase云端function的价值。 云function如下: exports.checkIfNumberExists = functions.https.onRequest((request, response) => { var db = admin.database(); var ref = db.ref("numbers"); var query = ref.orderByKey(); var exists = "false"; query.once("value" ,function(snapshot){ snapshot.forEach(function(childSnapshot){ if(childSnapshot.key === request.query.number){ exists = "true"; } }); response.send(exists); }); }); 我不明白什么types的数据做.send()函数返回,我认为它是纯文本,但昨天firefox得到它为JSON时, exist价值是布尔值,而不是string。 用firefox打开url会返回true或false ,但是当我尝试从Android或Javascript发出一个http get请求时,它拒绝访问它。 什么是.send()函数的返回types?

如何使用Cloud Functions for Firebase向特定用户发送推送通知

我使用Firebase作为我的Android应用程序的后端,并且对于使用Firebase的云端函数非常新,我想知道如何在发生事件时发送特定用户的推送通知。 例如,如果在数据库的adminName节点上发生写入时,如何在下面的代码中使用uId向用户发送推送通知: exports.sendNotification = functions.database.ref('/users/{uId}/groups/{adminName}') .onWrite(event => { // Grab the current value of what was written to the Realtime Database. var eventSnapshot = event.data; var str1 = "Author is "; var str = str1.concat(eventSnapshot.child("author").val()); console.log(str); var topic = "android"; var payload = { data: { title: eventSnapshot.child("title").val(), author: eventSnapshot.child("author").val() } }; // Send a […]

节点js计数器的值不会增加

所以这个想法是,它得到了teamInfo的实例,每个团队然后获得游戏信息,并在比赛时更新游戏信息,我希望计数器在find的每个匹配上递增,然后输出总计数比赛(或更新)的游戏信息。 我的代码如下: let counter = 0; teams.once("value", teamSnap => { teamSnap.forEach(tSnap => { games.once("value", gameSnap => { gameSnap.forEach(gSnap => { if(teamInfo.Name == gameInfo.AwayTeam) { let currGame = games.child(`${gSnap.key}`); currGame.update({ "AwayTeam": teamInfo.Name, "AwayId": tSnap.key}), function(error){ if (error) { console.log("Data could not be saved." + error); } else { counter++; } } } } } } }).then(() […]

Firebase的云端function – 了解哪个用户在onWrite中写入了数据

我试图做一个简单的消息应用程序。 在这个过程中,为了安全起见,我想使用Firebase的云functionfunction,这些function不应该在客户端执行。 我希望在用户需要的时候调用许多函数。 现在我试图做的方式是通过让客户端在单个父项下推入一些“函数请求”对象,这样onWrite函数将会触发,我可以parsing请求对象来执行函数(我之所以不使用http函数是因为我想要某种方式来安全地知道哪个用户发出了请求)。 问题是我无法在firebase的文档中find一个方法来知道哪个用户写了数据。 在index.js我有 exports.requestFunction = functions.database.ref('/function- requests/{pushId}') .onWrite(event => { // Parse event.data.val() for things like the function name and its // parameters. Then actually call the function. // Ideally I would also be able to parse event somehow to find the user // who saved the data. }); 请注意,我已经考虑将用户ID作为参数,但这太不安全了,因为任何用户都可以通过提供不同的uid来伪装成另一个用户。

调整图像大小并上传到服务器返回错误代码

这是我的代码: var dimensionsArray = [] dimensionsArray.push(new cardSet("L", 1000, 500, 200, 100)) dimensionsArray.push(new cardSet("M", 500, 200, 100, 50)) dimensionsArray.push(new cardSet("S", 200, 100, 50, 20)) function cardSet(name, dimSetWidth, dimSetHeight, dimPreviewWidth, dimPreviewHeight){ this.name = name this.dimSetWidth = dimSetWidth this.dimSetHeight = dimSetHeight this.dimPreviewWidth = dimPreviewWidth this.dimPreviewHeight = dimPreviewHeight } function insertBeforeLastOccurrence(strToSearch, strToFind, strToInsert) { var n = strToSearch.lastIndexOf(strToFind); if […]

angular/离子处理成功200作为一个错误

我使用离子与谷歌云function,当我将数据返回到我的应用程序angular度默认为处理它作为一个错误。 这里是我使用节点callback我的云function:我已经尝试添加大括号到有效载荷,但它没有帮助。 function (error, response, body) { let payload = parser.toJson(body, parserOptions); console.log(payload) res.status(200).send(payload); } 在控制台的日志中回复我得到: { ResponseCode: '0', referenceID: '22072017152436718488608295', ResponseMessage: 'SUCCESS', paymentURL: 'url', net_amount: '0', invoiceNumber: '0', status: '200' } 我期望在Angular / Ionic代码中收到哪些数据。 在邮递员testing这个工作也是。 Angular Code: return this.http.post('/api', body, headers) .map(res => res.json()) .subscribe( data => { console.log('Success') console.log(data) }, err => { […]

如何更改Firebase中的body parser限制?

我试图代理一个file upload到firebase云function不暴露我们的APIurl。 看起来像Firebase正在使用Body-parser来parsing请求中的主体,但默认情况下它被限制为100kb。 我试过这个: var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); 但它似乎没有使用bodyParser。 它使用embedded到Firebase框架中的私人内容。 有没有办法改变它的限制? 这是我得到的: 在getRawBody(/ usr / local / lib / lib)下,blockquote错误:{error:请求实体在readStream上太大(/usr/local/lib/node_modules/firebase-tools/node_modules/raw-body/index.js:196:17) (/usr/local/lib/node_modules/firebase-tools/node_modules/body-parser/lib/read.js:76:node_modules / firebase-tools / node_modules / raw-body / index.js:106:12) 3)在urlecodedParser(/usr/local/lib/node_modules/firebase-tools/node_modules/body-parser/lib/types/urlencoded.js:115:5)在Layer.handle [作为handle_request](/ usr / local / lib / node_modules / […]