如何从http触发的Cloud Function查询Firebase集合?

时间:2019-07-22 06:03:39

标签: firebase google-cloud-functions

当我的用户单击网站上的按钮时,我想用一些用户数据调用第三方API。为此,我想从Firebase的“用户”集合中获取他的数据。我正在尝试使用Admin SDK,但无法管理自己想做的事情。我什至不确定我应该看文档的哪一部分。

我正在使用Firebase模拟器在本地运行代码。

index.ts

import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'
import getUserData from './getUserData'

admin.initializeApp();

exports.getUserData = functions.https.onCall(getUserData)

getUserData.ts //我包含了一些我尝试过的内容

import { CallableContext } from "firebase-functions/lib/providers/https";
import * as admin from 'firebase-admin'

export default async function getUserData (data : any, context: CallableContext) {
  try {
    const users = await admin.firestore().collection('users').listDocuments()
    const users2 = await admin.firestore().collection('users').get()
    const user = await admin.firestore().collection('users').where('userEmail', "==", data.userEmail).get()
    const collections = await admin.firestore().listCollections()

    console.log('users:- ', users);
    console.log('users2:- ', users2);
    console.log('user:- ', user);
    console.log('collections:- ', collections);

    // Call API with user data
    return 
  } catch (err){
    console.log('err', err)
    return {error: "err/couldnt-create-subscription"}
  }
}

前端代码

const getUserData = await firebase
          .functions()
          .httpsCallable('getUserData')
        const result = await getUserData({
          userEmail: user.email,
        })

我希望它能够使用云功能查询Firebase数据库中的用户数据,然后正常处理这些数据。

0 个答案:

没有答案