javascript – 如何从Cloud函数内部运行查询?

一旦我的Firebase应用程序上的云功能调用,我想对我的数据库执行查询.

假设我在数据库上有一个触发器,请考虑get started guide on Firebase中提供的示例.

// Listens for new messages added to /messages/:pushId/original and creates an
// uppercase version of the message to /messages/:pushId/uppercase
exports.makeUppercase = functions.database.ref('/messages/{pushId}/original')
  .onWrite(event => {
      // Grab the current value of what was written to the Realtime Database.
      const original = event.data.val();
      console.log('Uppercasing',event.params.pushId,original);
      const uppercase = original.toupperCase();
      // I'D LIKE TO PERFORM A QUERY HERE,JUST A SIMPLE RETRIEVE BASED ON THE ID PROVIDED
     // You must return a Promise when performing asynchronous tasks inside a Functions such as
     // writing to the Firebase Realtime Database.
     // Setting an "uppercase" sibling in the Realtime Database returns a Promise.
     return event.data.ref.parent.child('uppercase').set(uppercase);
});

我应该导入哪些模块?
如何在DB上执行查询

提前谢谢你的回答!

解决方法

您可以使用 Node.js Admin SDK
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.makeUppercase = functions.database()
  .ref('/messages/{pushId}/original')
  .onWrite(event => {
    return admin.database().ref('/other')
      .orderByChild('id').equalTo(event.params.pushId)
      .once('value').then(snapshot => {
        // there,I queried!
      });
  });

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...