首页 > 解决方案 > 如何在 Firebase 函数中访问不同的集合

问题描述

我保证我彻底检查了所有以前提出的问题,没有任何类似的东西。我有一个 firebase 函数,它在 firestore 集合上监听 onCreate。

exports.sendEmail = functions.firestore.document('/Users/{documentId}')
    .onCreate((snap, context) => {

        const username = snap.data().username;
        const email = snap.data().email;

        console.log(username, email)

        const mailRef = functions.firestore.document('/mail')
        return mailRef.ref.set({
            email: email,
            subject: 'Welcome'

        });


    });

在中创建文档后Users,我想获取用户中的数据并在名为的主集合中创建一个新文档mail。这可能吗,因为我已经阅读了 10 次文档,但没有任何内容。非常感谢任何帮助。

标签: javascriptfirebasegoogle-cloud-platformgoogle-cloud-firestoregoogle-cloud-functions

解决方案


要在云函数中创建文档,则需要使用 admin sdk,所以首先安装包:

npm install firebase-admin --save

初始化 admin sdk:

const admin = require('firebase-admin');

admin.initializeApp({
  credential: admin.credential.applicationDefault()
});

const db = admin.firestore();

然后你可以添加:

       const mailRef = db.collection('mail')
        return mailRef.add({
            email: email,
            subject: 'Welcome'

        });

https://googleapis.dev/nodejs/firestore/latest/CollectionReference.html#add


推荐阅读