将文档添加到Firestore集合时触发云功能

臭氧玩具

我目前正在尝试使用Firestore,SwiftUI和Cloud Functions集成付款处理器。

我目前具有以下功能,该功能允许我将Firestore数据发送到处理器并获得返回值,该返回值将保存到Firestore中。

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

const Iyzipay = require('iyzipay');

const iyzipay = new Iyzipay({
  apiKey: 'sandbox-afXhZPW0MQlE4dCUUlHcEopnMBgXnAZI',
  secretKey: 'sandbox-wbwpzKIiplZxI3hh5ALI4FJyAcZKL6kq',
    uri: 'https://sandbox-api.iyzipay.com'
});

exports.pay = functions.https.onRequest((req, res) => {
  const docRef = db.collection('requests').doc('zFcWYdeP8wyLprYrc6o1');
  docRef.get().then(doc => {
      if (!doc.exists) {
        console.log('No such document!');
        return res.send('Not Found')
      } 
        console.log(doc.data());
        res.send(doc.data());

       const request = {
        locale: Iyzipay.LOCALE.TR,
        conversationId: '123456789',
        price: doc.data(doc).price,
        paidPrice: doc.data(doc).price,
        currency: Iyzipay.CURRENCY.TRY,
        installment: '1',
        basketId: 'B67832',
        paymentChannel: Iyzipay.PAYMENT_CHANNEL.MOBILE_IOS,
        paymentGroup: Iyzipay.PAYMENT_GROUP.LISTING,
        paymentCard: {
            cardHolderName: doc.data(doc).cardHolderName,
            cardNumber: doc.data(doc).cardNumber,
            expireMonth: doc.data(doc).expireMonth,
            expireYear: doc.data(doc).expireYear,
            cvc: doc.data(doc).cvc
        },
        buyer: {
            id: doc.data(doc).uid,
            name: doc.data(doc).name,
            surname: doc.data(doc).surname,
            gsmNumber: doc.data(doc).gsmNumber,
            email: doc.data(doc).email,
            identityNumber: doc.data(doc).identityNumber,
            registrationAddress: doc.data(doc).registrationAddress,
            city: doc.data(doc).city,
            country: doc.data(doc).country,
            zipCode: doc.data(doc).zipCode
        },
        shippingAddress: {
            contactName: doc.data(doc).name,
            city: doc.data(doc).city,
            country: doc.data(doc).country,
            address: doc.data(doc).registrationAddress,
            zipCode: doc.data(doc).zipCode
        },
        billingAddress: {
          contactName: doc.data(doc).name,
          city: doc.data(doc).city,
          country: doc.data(doc).country,
          address: doc.data(doc).registrationAddress,
          zipCode: doc.data(doc).zipCode
        },
        basketItems: [
            {
                id: doc.data(doc).productid,
                name: doc.data(doc).productname,
                category1: doc.data(doc).category1,
                itemType: Iyzipay.BASKET_ITEM_TYPE.PHYSICAL,
                price: doc.data(doc).price
            },
        ]
       }
       iyzipay.payment.create(request, function (err, result) {
        console.log(err, result);
        
        db.collection('results').doc(doc.data(doc).uid).set(result);
      }) 
      })
      })

我的意图是在将文档添加到"requests"集合中时触发该函数并获取该文档,而无需像这样手动编写其ID:

const docRef = db.collection('requests').doc('zFcWYdeP8wyLprYrc6o1');

我尝试更改functions.https.onRequest((req, res)functions.firestore.document('/requests/').onCreate((snap, context),但随后收到:

UnhandledPromiseRejectionWarning: ReferenceError: res is not defined

我该如何解决?谢谢。

道格·史蒂文森

Firestore触发器与HTTP触发器的API不同。如果要编写Firestore触发器,则应按照文档中的说明进行操作。我建议启动一个全新的功能,使其适用于简单的情况,然后将现有代码移植到其中。

请注意,Firestore触发器没有resreq对象,因为没有与客户端应用程序直接交互。您无法将响应发送到该应用,因为没有直接调用它的客户端应用。写入完成后,Firestore事件将以异步方式处理,并且应用已继续执行其他操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将集合添加到文档 Firestore

来自分类Dev

将文档添加到Cloud Firestore中的集合中,而不会覆盖以前的文档Flutter

来自分类Dev

在添加到集合时防止重复

来自分类Dev

如何仅在将子项添加到数据库时触发云功能?

来自分类Dev

Firestore:更新父级后如何将文档添加到子集合

来自分类Dev

流星DDP:当新文档添加到集合时如何获得通知

来自分类Dev

将项目添加到ToolStripMenuItem.DropDownItems集合时如何获得通知

来自分类Dev

将新对象添加到集合时,更新角度treeview指令

来自分类Dev

将范围索引添加到Azure DocumentDB集合时发生异常

来自分类Dev

将项目添加到DataBound集合时,为什么视图没有更新?

来自分类Dev

如何将数据添加到 Firestore 数据库子集合中的特定文档?

来自分类Dev

在 android studio 中使用 firestore 将新集合添加到同一文档

来自分类Dev

在Julia中添加到集合时重载对象比较?

来自分类Dev

添加到可观察集合时的奇怪行为

来自分类Dev

添加到Observable集合时的奇怪行为

来自分类Dev

将 Firestore 文档添加到 Pickerview 时出错

来自分类Dev

根据来自不同集合的文档的存在,将文档添加到集合中

来自分类Dev

集合 - 将元素添加到集合

来自分类Dev

如何将集合添加到Cloud Firestore中的另一个集合?

来自分类Dev

如何使用PyMongo将文档添加到集合中的数组

来自分类Dev

将集合添加到集合并创建嵌套集合

来自分类Dev

将数组添加到集合

来自分类Dev

将数组添加到集合

来自分类Dev

将选定的项目添加到集合

来自分类Dev

如何将ajax链接添加到将触发功能的ActiveAdmin视图

来自分类Dev

将文档添加到布局文件

来自分类Dev

将图片添加到word文档

来自分类Dev

添加到集合时的现有Java异常会超出固定大小吗?

来自分类Dev

如何将数据添加到Firestore数据库中的现有文档

Related 相关文章

  1. 1

    如何将集合添加到文档 Firestore

  2. 2

    将文档添加到Cloud Firestore中的集合中,而不会覆盖以前的文档Flutter

  3. 3

    在添加到集合时防止重复

  4. 4

    如何仅在将子项添加到数据库时触发云功能?

  5. 5

    Firestore:更新父级后如何将文档添加到子集合

  6. 6

    流星DDP:当新文档添加到集合时如何获得通知

  7. 7

    将项目添加到ToolStripMenuItem.DropDownItems集合时如何获得通知

  8. 8

    将新对象添加到集合时,更新角度treeview指令

  9. 9

    将范围索引添加到Azure DocumentDB集合时发生异常

  10. 10

    将项目添加到DataBound集合时,为什么视图没有更新?

  11. 11

    如何将数据添加到 Firestore 数据库子集合中的特定文档?

  12. 12

    在 android studio 中使用 firestore 将新集合添加到同一文档

  13. 13

    在Julia中添加到集合时重载对象比较?

  14. 14

    添加到可观察集合时的奇怪行为

  15. 15

    添加到Observable集合时的奇怪行为

  16. 16

    将 Firestore 文档添加到 Pickerview 时出错

  17. 17

    根据来自不同集合的文档的存在,将文档添加到集合中

  18. 18

    集合 - 将元素添加到集合

  19. 19

    如何将集合添加到Cloud Firestore中的另一个集合?

  20. 20

    如何使用PyMongo将文档添加到集合中的数组

  21. 21

    将集合添加到集合并创建嵌套集合

  22. 22

    将数组添加到集合

  23. 23

    将数组添加到集合

  24. 24

    将选定的项目添加到集合

  25. 25

    如何将ajax链接添加到将触发功能的ActiveAdmin视图

  26. 26

    将文档添加到布局文件

  27. 27

    将图片添加到word文档

  28. 28

    添加到集合时的现有Java异常会超出固定大小吗?

  29. 29

    如何将数据添加到Firestore数据库中的现有文档

热门标签

归档