Tag: 火力

为什么我的firebasecallback被多次触发?

我有一个小型节点服务器,监听Firebase的变化,并在特定条件下发送电子邮件。 代码如下: var Firebase = require('firebase'); var ref = new Firebase(process.env.FIREBASE_URL); ref.authWithCustomToken(process.env.FIREBASE_SECRET, function (err) { if (err) { console.log(new Date().toString(), 'Firebase Authentication Failed!', err); EmailService.send('Firebase authentication failed', 'errors@domain.com', err); } else { ref.child('applicants').on('child_added', function (snapshot) { var applicant = snapshot.val(); if (!(applicant.alerts && applicant.alerts.apply)) { console.log(new Date().toString(), 'New Applicant: ', applicant); var body = applicant.firstName […]

asynchronous并行重复条目

因此,我正在浏览一个名为candidates的数组,并使用数组中的每个项目执行某些任务,然后将结果推送到Firebase candfb 。 代码如下: var candidates = json.stageCandidates.candidate; var list = []; for (var i = 0; i < 20; i++) { var candidate = []; var id = candidates[i].candidateId; async.parallel([ function(callback) { votesmart.getDetailedBio(id, function(err, json) { if (!err && json.bio != undefined) candidate.bio = json.bio; callback(); }); }, function(callback) { votesmart.getAddress(id, function(err, json) { […]

如何将实时数据集成到nodeJS并进行expression

我正在使用快递处理我的networking应用程序的所有路由。 我也使用firebase来存储我的所有数据。 所以我想分裂我的代码是这样的: index.js :节点应用程序,路由并从firebase获取数据。 发送数据到视图(S)。 index.html :显示我的应用程序(一个视图),并包括client.js client.js :使用index.js (firebase)中的数据,并使用它在index.html生成一个图表。 我喜欢这个结构,因为index.js负责路由和获取数据, index.html和client.js处理显示。 不幸的是,这个结构并不适用于Firebase。 由于Firebase在每次修改数据库时都会收到数据,因此以下代码: app.get('/moods/get', function(req, res){ moodRef.on('value', function(snapshot){ res.json(snapshot.val()); }) }); 显示此错误: Error: Can't set headers after they are sent. 我认为这很明显,HTML页面已经显示,所以尝试发送json会产生这个错误。 那么解决scheme是什么? 在client.js使用firebase,所以它可以在现场更新显示,但我的代码结构变得有点怪异。 client.js现在负责数据,显示和index.js只负责路由? 什么是最佳实践? 你将如何组织你的代码这种types的项目? 提前致谢。

节点-v57-linux-x64 / grpc_node.node丢失

当按照以下步骤完成时: https://firebase.google.com/docs/admin/setup 并部署到我的服务器,我得到这个错误: 2017-10-16 19:19:56 4199bf47fc2d —> Starting app 2017-10-16 19:19:56 4199bf47fc2d Detected server.js file 2017-10-16 19:19:57 4199bf47fc2d module.js:529 2017-10-16 19:19:57 4199bf47fc2d throw err; 2017-10-16 19:19:57 4199bf47fc2d ^ 2017-10-16 19:19:57 4199bf47fc2d 2017-10-16 19:19:57 4199bf47fc2d Error: Cannot find module '/data/app/node_modules/firebase-admin/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64/grpc_node.node' 2017-10-16 19:19:57 4199bf47fc2d at Function.Module._resolveFilename (module.js:527:15) 2017-10-16 19:19:57 4199bf47fc2d at Function.Module._load (module.js:476:23) 2017-10-16 19:19:57 4199bf47fc2d at […]

Firebase自定义login过程中何处存储密钥

我将Node.JS与Firebase耦合,并计划使用LinkedIn来login用户。 在后台我有: var FirebaseTokenGenerator = require("firebase-token-generator"); var mySecret = 'XXXXX' module.exports = function (app, passport) { app.get('/fire', function (req, res) { var tokenGenerator = new FirebaseTokenGenerator(mySecret); var token = tokenGenerator.createToken({ "app_user_id": 123X, "isModerator": true }); res.render('firebase-index.ejs', {token: token, kale: 'mazing'}); }) }; 在模板firebase-index.ejs上: 在这里,我不确定如何存储授权过程中使用的令牌。 我似乎不能直接使用它,除非我插入到像这样的DOM元素 <span id="token"><%= token %><span> 然后我可以通过下面的'token.textContent'访问它 dataRef.auth(token.textContent, function(error) { if(error) { […]

Firebase Web 2.4.0承诺Nodejs

我在使用Node应用程序中的Firebase Web进行错误callback时遇到了一些问题。 原来的问题是,一个.set的错误callback显然没有被启动,当我预期它是。 在debugging过程中,我将Firebase npm模块升级到最新的2.4.0(NodeJS 0.10.28),然后注意到asynchronous调用有一个新的Promise语法。 我没有find使用新语法的例子,但做了一个小提琴 ,它似乎以我期望的方式在浏览器中工作。 var fb = new Firebase("https://katowulf-examples.firebaseio.com/"); // monitors changes and updates UI try { fb.child('sorted_widgets').orderByChild('name').equalTo('one').once('value').then(handleSuccess).catch(handleError) fb.child(undefined).once('value').then(handleSuccess).catch(handleError) fb.child('sorted_widgets').set(undefined).then(handleSuccess).catch(handleError) } catch (err) { console.error('Caught an error', err) } function handleSuccess(snap) { console.log('snap: ', snap.val()) } function handleError(err) { console.log('error:', err) } 我现在试图在我的Node应用程序中使用该语法,并得到这个错误: TypeError: Object #<nb> has no method 'catch' at […]

在NodeJS服务器端保护Firebase存储的外部链接

我在生成外部链接到存储在我的Firebase存储分区中的文件时遇到问题。 我现在正在使用Google云端存储,并使用此库(基于此答案)为常规存储桶生成外部链接,但在Firebase分配的存储桶上使用该库似乎不起作用。 我无法生成任何安全的HTTPS链接,并继续获取证书validation错误NET::ERR_CERT_COMMON_NAME_INVALID指出我的连接不是私有的。 如果我从HTTPS中删除“S”,则链接起作用。 注意:使用相同的凭据和私钥为我的项目中的其他存储桶生成链接,工作得很好。 只有Firebase存储分区拒绝接受我的签名…

Typescript Node.js原型不会编译

我似乎无法弄清楚我在这里做错了什么。 我想用原型方法扩展Firebase对象 但是我得到: Property 'foo' does not exist on type 'Firebase' /// <reference path="./tsd.d.ts"/> import Firebase = require('firebase'); interface Firebase { foo : () => string } Firebase.prototype.foo = function(): string { return "foo"; } var myRootRef = new Firebase('myUrl'); firebase.foo() // property 'foo' does not exist on type 'Firebase'.

Firebase交易

我正在使用firebase的节点,并试图使用事务来创build商店数据时,我得到: [Error: Set] 我很难搞清楚这个错误代码的含义。 我已经重写了我的代码,暂时禁用了安全规则,但是我得到了同样的错误。 以下是我正在使用的代码: myRef.child(user).transaction(function(currentData) { if (currentData === null) { //data doesn't exist return { total: userTotal, left: userLeft, isText: userIsText }; } else { currentData.total += userTotal; currentData.left += userLeft; return { total: currentData.total, left: currentData.left, isText: currentData.isText }; } }, function(error, committed, snapshot) { if(error) { console.log('@line 281: FB Tx […]

无法部署到Firebase。 获取ENOENT错误

每当我运行firebase部署我得到以下错误 events.js:72 throw er; // Unhandled 'error' event ^ Error: ENOENT, open '/home/joseph/tmp/11484-12736-1f3kttw.tar.gz' 任何想法可能会导致它?