Firebase的云功能更新日期到数据库

时间:2017-05-10 18:47:05

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

我正在尝试在此位置向Firebase数据库添加日期: /用户/ {UID] / AccessDate。 我正在使用的功能是使用HTTPS WebHook。 我正在访问这样的函数:

https://us-central1-project_my_project.cloudfunctions.net/date

这是我要修改的代码:

请帮助:(

     /**
     * Copyright 2016 Google Inc. All Rights Reserved.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    'use strict';

    // [START functionsimport]
    const functions = require('firebase-functions');
    const admin = require('firebase-admin');
    admin.initializeApp(functions.config().firebase);
    // [END functionsimport]
    // [START additionalimports]
    // Moments library to format dates.
    const moment = require('moment');
    // CORS Express middleware to enable CORS Requests.
    const cors = require('cors')({origin: true});
    // [END additionalimports]

    // [START all]
    /**
     * Returns the server's date. You must provide a `format` URL query parameter or `format` vaue in
     * the request body with which we'll try to format the date.
     *
     * Format must follow the Node moment library. See: http://momentjs.com/
     *
     * Example format: "MMMM Do YYYY, h:mm:ss a".
     * Example request using URL query parameters:
     *   https://us-central1-<project-id>.cloudfunctions.net/date?format=MMMM%20Do%20YYYY%2C%20h%3Amm%3Ass%20a
     * Example request using request body with cURL:
     *   curl -H 'Content-Type: application/json' /
     *        -d '{"format": "MMMM Do YYYY, h:mm:ss a"}' /
     *        https://us-central1-<project-id>.cloudfunctions.net/date
     *
     * This endpoint supports CORS.
     */
    // [START trigger]
    exports.date = functions.https.onRequest((req, res) => {
    // [END trigger]
      // [START sendError]
      // Forbidding PUT requests.
      if (req.method === 'PUT') {
        res.status(403).send('Forbidden!');
      }
      // [END sendError]

      // [START usingMiddleware]
      // Enable CORS using the `cors` express middleware.
      cors(req, res, () => {
      // [END usingMiddleware]
        // Reading date format from URL query parameter.
        // [START readQueryParam]
        let format = req.query.format;
        // [END readQueryParam]
        // Reading date format from request body query parameter
        if (!format) {
          // [START readBodyParam]
          format = req.body.format;
          // [END readBodyParam]
        }
        // [START sendResponse]
        const formattedDate = moment().format(format);
        console.log('Sending Formatted date:', formattedDate);

      //  var db = firebase.database();
      //  db.ref("-Users/Oer5c1NxFOVw5DpzN4miuu7j2").update({ AccessDate: formattedDate });
//// this does not work,,,, 


         console.log('FORMAT =>',format,'<=');
        res.status(200).send(formattedDate);
        // [END sendResponse]
      });
    });
    // [END all]

1 个答案:

答案 0 :(得分:0)

您需要像这样调用更新:

admin.database().ref("-Users/Oer5c1NxFOVw5DpzN4miuu7j2").update({ AccessDate: formattedDate });