在Firebase中编写游戏逻辑
我正在开发一个乘法器棋盘游戏(非常类似于国际象棋)。我使用Firestore作为后端。我知道为了防止在游戏中作弊,我需要将游戏逻辑(验证合法移动、更改回合、倒计时)放在服务器端,而不是客户端。现在,据我所知,在Firebase中配置服务器端行为主要有两个地方:云功能和安全规则。我考虑使用安全规则来验证移动,使用云函数来翻转和倒计时。我对安全规则没有太多经验,但我认为编写规则来验证移动太复杂了。或者,我考虑阻止客户端对Firestore的所有写访问,并编写HTTPS云函数供客户端调用。例如,我有一个移动的函数。客户端将调用此函数,而不是直接写入Firestore。我不知道该怎么办。你认为呢?正如你所说,有两个广泛的选择:在Firebase中编写游戏逻辑,firebase,google-cloud-firestore,google-cloud-functions,firebase-security,Firebase,Google Cloud Firestore,Google Cloud Functions,Firebase Security,我正在开发一个乘法器棋盘游戏(非常类似于国际象棋)。我使用Firestore作为后端。我知道为了防止在游戏中作弊,我需要将游戏逻辑(验证合法移动、更改回合、倒计时)放在服务器端,而不是客户端。现在,据我所知,在Firebase中配置服务器端行为主要有两个地方:云功能和安全规则。我考虑使用安全规则来验证移动,使用云函数来翻转和倒计时。我对安全规则没有太多经验,但我认为编写规则来验证移动太复杂了。或者,我考虑阻止客户端对Firestore的所有写访问,并编写HTTPS云函数供客户端调用。例如,我有一
Firebase的Doug Stevenson游戏在Google I/O 2017上展示了这一方法的精彩演讲:。虽然他在那里使用Firebase实时数据库(因为Firestore尚未发布),但同样的方法也适用于云Firestore。正如您所说,有两个广泛的选择:
Firebase的Doug Stevenson游戏在Google I/O 2017上展示了这一方法的精彩演讲:。虽然他在那里使用Firebase实时数据库(因为Firestore尚未发布),但同样的方法也适用于Cloud Firestore。这句话不准确,无法防止在游戏中作弊,我需要将游戏逻辑放在服务器端,不确定这些信息来自何处。如果这是真的,那么任何数据都可能被泄露。规则控制对存储在Firebase中的应用程序数据的读/写访问-它们可能不是验证移动的正确位置,因为(通常)应用程序处理的操作会涉及逻辑。e、 g.防止主教在板上垂直移动;您可能可以在规则中实现这一点,但通过代码级计算会更好。任何有足够经验的人都可以模仿您的客户机。这不是Firebase的问题。这是软件的本质。任何可访问的软件都可以用足够的时间和精力进行逆向工程。您可能会发现这个答案很有帮助是-完美的答案并直接说明了我所说的,这就是为什么您可以安全访问Firebase数据…(使用Authenticaton和)安全规则(用于数据库或存储),以确保他们只能访问授权访问的数据。。很好的回答,非常准确地回答了你的问题。看看下面的问题和答案,好吧,那么你同意我们必须把游戏逻辑放在服务器端而不是客户端吗?这句话不准确,无法防止游戏作弊,我需要把游戏逻辑放在服务器端,不确定这些信息来自何方。如果这是真的,那么任何数据都可能被泄露。规则控制对存储在Firebase中的应用程序数据的读/写访问-它们可能不是验证移动的正确位置,因为(通常)应用程序处理的操作会涉及逻辑。e、 g.防止主教在板上垂直移动;您可能可以在规则中实现这一点,但通过代码级计算会更好。任何有足够经验的人都可以模仿您的客户机。这不是Firebase的问题。这是软件的本质。任何可访问的软件都可以用足够的时间和精力进行逆向工程。您可能会发现这个答案很有帮助是-完美的答案并直接说明了我所说的,这就是为什么您可以安全访问Firebase数据…(使用Authenticaton和)安全规则(用于数据库或存储),以确保他们只能访问授权访问的数据。。很好的回答,非常准确地回答了你的问题。看看下面的问题和答案,好吧,那么你同意我们必须把游戏逻辑放在服务器端而不是客户端吗?我想在这个极好的答案中添加一个注释,即广泛的选项1。二,。如果一开始就制定了适当的规则,就永远不需要这样做。换句话说,如果规则不允许