web-dev-qa-db-ja.com

firebaseクラウド機能を使用してクラウドファイヤーストアからデータを読み取りますか?

私はAndroid開発者です。最近、firebaseクラウド関数とfirestoreデータベースに基づいたプロジェクトに取り組み始めました。2つのパラメーターを取り、それを比較するHTTPトリガー関数を書いています。パラメータ値をfirestoreデータ値と組み合わせ、値が一致する場合はtrueまたはfalseの応答を返します。

重複した質問:

はい、私に関連してすでに質問がいくつかありますが、それらは似ていません:

  1. Firestore +クラウド機能:別のドキュメントから読み取る方法

  2. Firebase HTTP Cloud Functions-データベースを1回読み取ります

Firebase Docsは言う

Cloud Firestoreは、イベントの作成、更新、削除、書き込みをサポートしています

HTTPトリガーからfirestore値を読み取りたい。

私が試したこと:

exports.userData = functions.https.onRequest((req, res) => {

 const user = req.query.user;
 const pass = req.query.pass;
});

私はこの部分でほとんど立ち往生しています。どんな助けも大歓迎です。ありがとう

追伸JS/TypeScript/NodeJSに関連する知識が非常に限られている

少し遅れますが、他の誰かがこれにつまずいた。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);


exports.someMethod = functions.https.onRequest((req, res) => {
    var stuff = [];
    var db = admin.firestore();
    db.collection("Users").doc("7vFjDJ63DmhcQiEHwl0M7hfL3Kt1").collection("blabla").get().then(snapshot => {

        snapshot.forEach(doc => {
            var newelement = {
                "id": doc.id,
                "xxxx": doc.data().xxx,
                "yyy": doc.data().yyy
            }
            stuff = stuff.concat(newelement);
        });
        res.send(stuff)
        return "";
    }).catch(reason => {
        res.send(reason)
    })
});
31
Ruan

Ruanの答え のおかげで、ここにonCall(..)バリエーションの例があります:

exports.fireGetColors = functions.https.onCall((data, context) => {

    return new Promise((resolve, reject) => {

        var colors = {};

        var db = admin.firestore();
        db.collection('colors')
          .get()
          .then(snapshot => {

              snapshot.forEach(doc => {
                  var key = doc.id;
                  var color = doc.data();
                  color['key'] = key;

                  colors[key] = color;
              });

              var colorsStr = JSON.stringify(colors, null, '\t');
              console.log('colors callback result : ' + colorsStr);

              resolve(colors);
          })
          .catch(reason => {
              console.log('db.collection("colors").get gets err, reason: ' + reason);
              reject(reason);
          });
    });

});
3
Gene Bo