Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase:;信用证“;在用户帐户之间_Firebase - Fatal编程技术网

Firebase:;信用证“;在用户帐户之间

Firebase:;信用证“;在用户帐户之间,firebase,Firebase,从用户帐户A到用户帐户B的x“信用”交易。安全约束:只有在用户A到用户B之间存在状态为“已接受”且金额为x的相应应用程序时,才能进行交易。交易完成后,需要将应用程序状态设置为已解决 Firebase是否有可能以原子方式实现学分转移,这样我就不会出现不一致的数据,例如丢失或生成的学分、应用程序状态未“解决” 我看到了如何使用Firebase的规则强制执行上述安全约束,因为我可以引用并比较其中任意路径中的数据 但Firebase的事务似乎只在一条路径上运行。因此,我看到的唯一解决方案是在一条路径上实

从用户帐户A到用户帐户B的x“信用”交易。安全约束:只有在用户A到用户B之间存在状态为“已接受”且金额为x的相应
应用程序时,才能进行交易。交易完成后,需要将应用程序状态设置为
已解决

Firebase是否有可能以原子方式实现学分转移,这样我就不会出现不一致的数据,例如丢失或生成的学分、应用程序状态未“解决”

我看到了如何使用Firebase的规则强制执行上述安全约束,因为我可以引用并比较其中任意路径中的数据


但Firebase的事务似乎只在一条路径上运行。因此,我看到的唯一解决方案是在一条路径上实现积分和应用程序,用户的积分数量由其“应用程序”的历史记录计算。这个解决方案可行吗?

当然可行。阅读这篇文章,从Firebase的一位工程师那里获得深入的解释:谢谢@FrankvanPuffelen,我以前见过这篇文章。它看起来太复杂了,所以我想知道是否有更简单的解决方案。我现在就把它彻底读一遍!