Tag: firebase admin

如何validationnodejs中的firebase-admin用户?

目前,我正在为nodejs创build一个Firebase API。 我想用nodejs上的firebase-admin处理所有Firebase的东西(如身份validation)。 但是,如果在客户端没有使用Javascript Firebase SDK的firebase-admin中通过nodejsvalidation用户身份的正确方法是什么? 在pipe理员的官方文档,我没有find一个名为signInWithEmailAndPassword (如在客户端SDK)的函数nodejs。 只有一个叫做“ getUserByEmail ”的函数,但是这个函数并不检查用户是否input了正确的密码。 这是我的forms: <form class="sign-box" action="/login" method="post"> <div class="form-group"> <input id="username" name="username" type="text" class="form-control" placeholder="E-Mail"/> </div> <div class="form-group"> <input id="password" name="password" type="password" class="form-control" placeholder="Password"/> </div> <button type="submit" class="btn btn-rounded">Sign in</button> </form> 一旦提交表单,我将这些值传递给nodejs中的API: app.post('/login', urlencodedParser, function (req, res) { // getting the values response = { username: […]

Firebase Node.JS Admin SDK发送validation邮件

我正在使用sdk为用户创build一个用户和一个数据库条目,这一切都是完美的。 创build数据库条目后,我调用sendEmailVerification()函数,但我猜这是一个客户端函数,因为它被调用时返回null。 什么是从pipe理员sdk直接发送validation电子邮件的过程(如果可能的话)。 目前我所做的是将一些JSON发送回客户端,说明validation邮件是否成功发送。 但是调用这个函数是行不通的,所以没有那么多。 这是我在节点内的function。 function verifiyEmail(email, res) { var user = admin.auth().currentUser; user.sendEmailVerification().then(function() { // Email sent. var jsonResponse = { status: 'success', alertText: '1', email: email } res.send(jsonResponse); }, function(error) { // An error happened. var jsonResponse = { status: 'success', alertText: '0', email: email } res.send(jsonResponse); }); } UPDATE 我猜这是不可能的,所以我在节点中生成一个自定义令牌,并将其发送回客户端。 然后我使用我回来的令牌尝试通过调用下面的方式来签署用户,但是signInWithCustomToken()函数不会被调用。 […]

admin.database不是一个函数

Iam使用Firebasepipe理员,但当我使用出口像 var admin = require('firebase-admin'); var serviceAccount = require('./firebaseconfig.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://database.firebaseio.com" }); module.exports = { admin : admin } 并在需要使用另一个文件 var admin = require('../Firebaseconfig/firebase.js'); console.log(admin.database()) 然后在启动服务器时发生错误,但是如果在同一个文件中使用admin.database(),则Iam不会收到任何错误。 错误代码片段: 的console.log(admin.database()) TypeError:admin.database不是Object的函数。

Firebase Firebase部署错误的云端函数:错误parsing触发器:无法find模块'firebase-admin'“

当我运行firebase deploy我得到这个错误: Error parsing triggers: Cannot find module 'firebase-admin' 这是我的代码: const functions = require('firebase-functions'); const admin = require('firebase-admin'); 我的package.json是: { "name": "functions", "description": "Cloud Functions for Firebase", "dependencies": { "firebase-admin": "^5.2.1", "firebase-functions": "^0.6.2", "request": "^2.83.0" }, "private": true } 这里是我的全局节点模块: npm list -g –depth=0 /Users/TDK/.nvm/versions/node/v6.11.2/lib ├── child_process@1.0.2 ├── firebase-admin@5.3.0 ├── firebase-tools@3.12.0 ├── fs@0.0.2 ├── npm@5.4.2 […]

如何获取Firebasedynamic链接分析Rest API的正确访问令牌(NodeJS)

我用serveracceskey得到的access_token有问题。 这是我在NodeJS中的代码: const admin = require('firebase-admin'); var request = require("request"); const serviceAccount = require('./serverAccountKey.json'); const credential = admin.credential.cert(serviceAccount); credential.getAccessToken().then((accessTokenInfo) => { const accessToken = accessTokenInfo.access_token; const expirationTime = accessTokenInfo.expires_in; console.log("accessToken " + accessToken ); console.log("expirationTime " +expirationTime); var s = "Bearer " + accessToken; request({ headers:{ 'Authorization': s }, uri:"https://firebasedynamiclinks.googleapis.com/v1/SHORTLINK/linkStats?durationDays=7", method: "GET", }, function(error, response, […]

Firebase凭据错误

我有一些错误: 通过\“credential \”属性为initializeApp()提供的凭据实现无法获取有效的Google OAuth2访问令牌,并出现以下错误:\“获取访问令牌时出错:invalid_grant(无效的JWT:令牌必须是短期令牌,在合理的时间内)“。 有两个可能的原因:(1)您的服务器时间未正确同步或(2)您的证书密钥文件已被吊销。 解决(1),重新同步你的服务器上的时间。 要解决(2),请确保您的密钥文件的密钥ID在Firebase项目中仍然存在。 如果不是,则在服务帐户设置中生成一个新的密钥文件。 当我尝试在Nodejs中使用Firebase Admin SDK时。 在我的本地计算机上工作,但是当我尝试在AWS服务器中使用时,出现此错误。 一些小费?

如何在firebase的云端函数中读取单个请求中多个用户ID的数据

我正在为我的Android应用程序和云function使用Firebase数据库。 由于Firebase以JSON格式存储数据。 每个用户都有一些分配给用户的唯一ID。 我想知道是否有任何方法可以在一个请求中获取多个用户数据。 如果你看到下面的代码,它将只获取传递的用户ID的数据。 db .ref("/users/" + request.query.userId) .once("value") .then(function(snapshot) { 我有10个用户标识符,我希望在nodejs中的单个请求中获取数据。 有什么办法得到这个?

firebase-admin WebSocket错误

我有firebase-admin的问题。 显然我不能build立与Firebase的WebSocket连接。 var admin = require("firebase-admin"); var serviceAccount = require("./realtimedemo-c6eae-firebase-adminsdk.json"); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://realtimedemo-c6eae.firebaseapp.com" }); admin.database.enableLogging(true) var defaultDatabase = admin.database(); var ref = defaultDatabase.ref(); ref.on("value", function(snapshot) { console.log(snapshot.val()); }, function (errorObject) { console.log("The read failed: " + errorObject.code); }); thx,提前任何帮助。

如何通过HTTPS将Firebase令牌发送到后端(Node / Express)

我有我的应用程序的客户端login正在工作得很好。 现在我需要将客户端UID传递给节点。 在Firebase文档中find了这个Verify ID Tokens ,但是我只是不知道如何实际执行此部分:“通过HTTPS将令牌发送到您的后端”

在每次执行中发送多个推送通知的Firebase函数中返回*的内容?

我正在使用单个的Firebasefunction向我的Android用户发送多个推送通知。 每个通知的详细信息都将写入我的Firebase数据库中的date和时间。 我使用cron通过http请求来触发此Firebasefunction。 我的问题是,Firebase函数应该如何返回以完成所有Firebase节点(代表通知)的循环并完成发送所有通知? 这是我现在所拥有的。 它在发送第一个通知之后退出。 我想要的是完成查看所有Firebase子节点并为每个节点发送通知。 我不明白Promise的想法足以找出在多个推送通知的情况下返回什么。 这也没有帮助,我几乎完全忘记了如何写javascript。 exports.sendHourlyNotifications = functions.https.onRequest((req, res) => { const dateStr = req.query.date; const hourStr = req.query.hour; console.log('sendHourlyNotifications', 'date: ' + dateStr + " hour: " + hourStr); const parentRef = admin.database().ref(); const notifRef = parentRef.child('all-notifications'); const hourRef = notifRef.child(dateStr).child(hourStr); return hourRef.once('value').then(snapshot => { const updates = {}; snapshot.forEach(function(childSnapshot) […]