Ionic3 + Firebase数据库安全性+ PayPal

时间:2017-10-04 12:39:30

标签: firebase paypal firebase-realtime-database ionic3 firebase-security

我正在使用Ionic 3与Firebase数据库和PayPal进行付款。在我的应用程序中,用户可以通过App(marketplace)上的其他用户提供的PayPal列表进行购买。我遇到了需要为我的数据库实现的正确Firebase数据库规则的问题。

一方面,当购买给定的商品时,买家需要将商品的状态更新为已售出(以便其他人不会再次购买)。另一方面,应该授权列表的所有者编辑他/她的列表。我现在有一些规则,这些规则并没有真正解决我的困境。

    "explore": {
      ".read": "auth.provider === 'facebook'",
      "$listing": {
        ".write": "auth.provider === 'facebook' && ((!data.exists() && newData.exists()) || root.child('explore/'+$listing+'/UID').val() === auth.uid)",
      }
    },

也许有一种方法可以从Firebase功能的后端执行此操作?任何关于如何解决这个问题的建议将不胜感激!非常感谢!

1 个答案:

答案 0 :(得分:1)

您应创建一个执行付款处理的云功能,并在付款成功时将商家信息标记为已售出。例如,您可以为onCreate创建user-purchases/{uid}/{listing}事件侦听器,触发后会尝试付款。

如果付款成功,请将交易ID写回user-purchases/{uid}/{listing}以及任何其他购买特定信息,并使用firebase-admin将商家信息的状态设置为已售出,并执行任何其他后续操作动作。

否则,如果付款失败,请写下PayPal返回的错误消息。