Tag: firebase admin

Firebase Admin Nodejs找不到模块service_account.json

我用“node firebasedb.js”开始我的节点。 我的firebasedb.js包含这个代码: var admin = require("firebase-admin"); var serviceAccount = require("service_account.json"); // Initialize Firebase var config = { credential: admin.credential.cert(serviceAccount), apiKey: "<api key>", authDomain: "<auth domain>", databaseURL: "<database url>", storageBucket: "<storage bucket>", }; admin.initializeApp(config); 当我运行节点时,我在.json文件所在的目录中。 但它说 Error: Cannot find module 'service_account.json'

如何通过Firebase Admin与代理连接到Firebase?

目前,我正在使用Firebase Admin SDK在NodeJS服务器端应用程序中连接Firebase数据库。 但我没有find通过代理设置连接Firebase的选项,或者它可以检测到我的系统HTTP_PROXY环境variables。 当我通过node index.js运行节点脚本,并得到一些像这样的超时消息(我知道在我的工作networking中,我无法直接连接到Firebase)。 Error: Credential implementation provided to initializeApp() via the "credential " property failed to fetch a valid Google OAuth2 access token with the following error: "connect ETIMEDOUT 216.58.200.237:443". at ….erver\node_modules\firebase-adm in\lib\firebase-app.js:74:23 at process._tickCallback (internal/process/next_tick.js:103:7) 我也使用浏览器通过代理访问Firebase控制台,它的工作原理。 但是如何在NodeJS服务器端脚本中解决这个问题呢?

如何在NodeJS中创build一个新的Firebase Admin SDK服务器以与LinkedIn进行身份validation?

我从来没有使用NodeJS,我需要创build一个Firebase自定义令牌,所以我可以通过LinkedIn向我的iOS应用程序进行身份validation。 根据Firebase文档,我必须创build一个新的Firebase Admin SDK服务器。 我遵循NodeJS的指示,但是没有很好的解释。 我不明白如何与我的应用程序通信到服务器,我找不到有关它的文档。 有人做过这个吗? 如果是这样,我会感谢您的帮助。 谢谢。

firebase-admin auth错误,同时调用`getUser`,但在调用verifyToken时工作正常

在服务器端使用firebase-admin时,我需要从Firebase身份validation中获取用户数据。 但是我发现,如果我使用firebase提供的jwt令牌,我无法从解码令牌获取电子邮件或其他提供者的数据。 (很确定我已经正确添加了特定的作用域。) 然后我转向使用Firebase的pipe理API来从Firebase的身份validation获取用户数据。 代码如下所示: import * as admin from 'firebase-admin' const auth = admin.auth() auth.verifyIdToken(idToken) .then(decodedToken => decodedToken.user_id) .then(uid => { auth.getUser(user_id) .then((userRecord) => { console.log("Successfully fetched user data:", userRecord.json(); }) .catch(function(error) { console.log("Error fetching user data:", error); }); }) 然后我得到一个错误: Error fetching user data: Error: error:0906D06C:PEM routines:PEM_read_bio:no start line at Error (native) at […]

用于Firebase Admin SDK的Node.js身份validation服务器 – JWTvalidation问题

我正在开发一个项目,我们将在微服务架构中使用不同的服务,同时我们也希望使用一些Firebase服务。 我正在开发一个auth服务器,这个服务器将用于在Firebase以及其他API项目中使用自定义JWT。 我们希望使用Firebase Auth SDK轻松地与FB,Google,Twitter等进行整合,但是我们需要用更多的数据来丰富用户的令牌。 因此,我的思考过程是创build一个使用Firebase Admin SDK的Node.JS auth服务器来执行此操作。 stream程如下: 用户使用客户端上的collections提供程序login 如果login成功,用户将从Firebase收到JWT。 这被发送到auth服务器进行validation 如果auth服务器可以使用admin SDKvalidation令牌,则创build一个新的自定义令牌,并添加更多数据,然后将此新自定义令牌返回给客户端 让客户端使用新的自定义令牌重新进行身份validation,并将其用于与Firebase以及我们的其他API项目(主要在.NET Core中)进行通信。 步骤1-3工作正常。 尝试validation其他服务上的自定义令牌时出现问题 。 TL; DR :有两个问题: 在validation使用Firebase Node.JS Admin SDK发布的自定义令牌时,我应该使用什么作为公钥? 从Google公开的JWK中提取的关键字,还是从用于签名的私钥中提取的密钥? 在JWK方法的情况下,我应该如何构build一个kid头自定义令牌? 首先,我怀疑validation它的正确方法。 (请原谅,我没有那么有经验的创buildOAuthstream。)使用的algorithm是RS256,所以我应该能够使用公钥validation令牌。 正如我所看到的,有两种方法来获得这个关键: 从私钥中提取公钥并使用它进行validation。 我可以在auth服务器上的testingterminal上成功地进行validation,但是我觉得这是不正确的做法 另一种更正确的方法是使用令牌中的值在我的项目的Google的“/.well-known/openid-configuration/”端点上查找JWK,即 https://securetoken.google.com/[PROJECT ID] /。well-known / openid-configuration 检索正确的kid (密钥ID)的指数和模数,并从这些中创build公钥。 从admin SDK生成的令牌 admin.auth().createCustomToken(uid, additionalClaims).then(function(customToken) 一些自定义声明看起来像这样: 标题: { "alg": "RS256", "typ": "JWT" } 有效载荷: […]

有没有办法通过我的Node.js服务器发送带有Firebase Admin SDK的validation邮件?

有没有办法从我的服务器发送电子邮件validation电子邮件? 这是如何在客户端上完成的: authData.sendEmailVerification().then(function() { 有没有办法在服务器上做到这一点?

Firebase-admin不会写入数据库,不会出现错误

Firebasepipe理员不写入数据库。 我正在实例化数据库: var db = admin.database(); 然后设置一个我想要的表的引用: var systemsRef = db.ref("systems/"); 然后我有一个函数来检查'系统'(一个encryption的硬件ID)是否存在。 function isSystemRegistered(id){ var isTrue; systemsRef.once('value', function(snapshot) { isTrue = (snapshot.hasChild(id))? true : false; }); return isTrue; } 其中,至今仍然是false ; 这是true ,因为它还不存在。 如果系统不存在,则写入数据。 const sysID = getSysID(); var sys.info.name = generateUniqueSystemName(); if(isSystemRegistered(sysID){ console.log("system is already registered!"); } else { msystemsRef.set({ sysID : sys.info.name }, […]

在调用更新()数据库ref javascript的Firebase无效path

我正在使用Firebase node.js admin sdk通过csv导入器使用自定义uid创build用户帐户。 这一切工作正常。 在成功创build帐户我想更新数据库引用。 但是,只要函数循环在db中创build条目,它就会失败,并显示消息 未被捕获的错误:Firebase.child失败:第一个参数是无效的path:“contractors / jk116734s”。 path必须是非空string,不能包含“。”,“#”,“$”,“[”或“]” 正如您在上面的日志消息中所看到的那样,path中不包含任何不需要的字符,path也不是空的。 奇怪的是,它确实更新了数据库中的一条logging,但其他所有的logging都失败了。 path“承包商/ jk116734s”我也logging所有的path,没有不确定的或包含无效的字符。 网站的部分内容都是独一无二的。 这是我的function,每个成功的帐户创build被调用。 function createDbEtnryForUser(index, contractorData) { var ni = contractorData.ni; var path = "contractors/" + ni console.log(path); databaseRoot.ref(path).update(contractorData); databaseRoot.ref(path).once('value',function(snapshot) { $('#row-'+index).css({"background-color":"green", "color":"white"}); }); } 你也可以看到一个条目正在创build,但其余的不是。 奇怪的是,如果我不使用自定义的uid和使用由firebase创build的自动uids都工作正常。 我不明白的是,所有的帐户都是使用自定义uid创build的,正如您所看到的,我正在获取自定义uid,以便在调用中进行更新。

Firebasepipe理员身份validation令牌被吊销

我试图实现一个node.js服务器来侦听我的firebase数据库中的更改。 这是我的代码来初始化服务器: var admin = require('firebase-admin'); var serviceAccount = require('./SERVICE-ACCOUNT.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://APP-NAME.firebaseio.com" }); var db = admin.database(); admin.database.enableLogging(true); var convRef = db.ref('conversations'); convRef.once('value', function(snapshot) { console.log("VALUE: " + snapshot.val()); }, function(error) { console.log("ERROR: " + error.code); }); 启用debugging后,我收到错误: p:0: Listen called for /conversations default p:0: Making a connection attempt p:0: Auth token […]

Google App Engine – 节点:无法find模块“firebase-admin”

第一次在这里部署一个GAE应用程序,我试图按照本教程: https : //firebase.googleblog.com/2016/08/sending-notifications-between-android.html (请参阅节点代码部分)。 我跑了 npm install firebase-admin –save npm install request –save 在我的机器上,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 […]