Firebase从云功能API保存到数据库

时间:2018-05-07 17:00:09

标签: node.js firebase firebase-realtime-database google-cloud-functions

我编写了一个可以通过REST API访问的Firebase云功能。代码如下。

我需要做的是,当用户通过“Web服务URL”从前端提交一些值时。

1。)我需要将这些数据保存在Firebase实时数据库中。

2.)我在网上审阅了几个教程,并且不了解public abstract double izracunajZasedenost (int a = -1, int b = -1) { if (a == -1){ //do method with ignoring a } }; 在以下代码中的作用。

CREATE TRIGGER abonnes_nw_updcommunes
AFTER INSERT
ON abonnes
BEGIN
UPDATE communes SET 
    "nbabonnescom" = 
        (
        SELECT SUM(abonnes.nbabonnes)
        FROM abonnes JOIN communes ON
        ( within(abonnes.GEOMETRY, (SELECT communes.GEOMETRY FROM communes, abonnes WHERE ST_Contains(communes.GEOMETRY, NEW.GEOMETRY))))
        )
WHERE within(NEW.GEOMETRY, communes.GEOMETRY);
END;

enter image description here

1 个答案:

答案 0 :(得分:2)

您的代码会在server节点(位置)下将数据写入数据库。数据库中的结果如下(从Firebase控制台导出):

  "server" : {
    "saving-data" : {
      "fireblog" : {
        "users" : {
          "alanisawesome" : {
            "date_of_birth" : "June 23, 1912",
            "full_name" : "Alan Turing"
          },
          "gracehop" : {
            "date_of_birth" : "December 9, 1906",
            "full_name" : "Grace Hopper"
          }
        }
      }
    }
  }

所以,基本上,对问题#1的回答是:"它被保存"。

问题#2:值db.ref("server/saving-data/fireblog")Reference的一个实例,其中"表示数据库中的特定位置,可用于读取或写入该数据库位置的数据&# 34;,见https://firebase.google.com/docs/reference/js/firebase.database.Reference

var usersRef = ref.child("users");也是您通过child()方法获得的参考,请参阅https://firebase.google.com/docs/reference/js/firebase.database.Reference#child

因此,通过组合初始引用和child()方法,当您执行usersRef.set({})时,您将写入以下路径:server/saving-data/fireblog/users。以上是数据库导出中反映的内容。

请注意,使用当前代码,您将始终在该位置写入相同的数据,即以下对象:

{
  alanisawesome: {
    date_of_birth: "June 23, 1912",
    full_name: "Alan Turing"
  },
  gracehop: {
    date_of_birth: "December 9, 1906",
    full_name: "Grace Hopper"
  }
}

同样,这在上面的数据库导出中反映出来。

使用通过HTTPS调用的云功能,您可以在HTTP请求的主体中经典地获取要写入数据库的数据。

最后一点:我会按照以下方式重新组织您的功能:

const db = admin.database();
const ref = db1.ref("server/saving-data/fireblog");

exports.uploadFile = functions.https.onRequest((req, res) => {
    cors(req, res, () => {
        const usersRef = ref.child("users");

        if (req.method !== 'POST') {
            return res.status(500).json({
                message: 'Not allowed'
            })
        } else {
            return usersRef.set({
                alanisawesome: {
                    date_of_birth: "June 23, 1912",
                    full_name: "Alan Turing"
                },
                gracehop: {
                    date_of_birth: "December 9, 1906",
                    full_name: "Grace Hopper"
                }
            }).then(() => {
                res.status(200).json({
                    message: req.body
                });
            }).catch(error => {
                return res.status(500).send(error);
            })
        }

    })

});

最后,我建议你看看来自Firebase团队的视频:https://www.youtube.com/watch?v=7IkUgCLr5oA

相关问题