我正在使用Firebase应用程序,该应用程序将包含一组代码,这些代码仅供一次性使用,然后将永久绑定到用户。
我希望获得这些代码的最佳查询和更新功能,并遵循Firebase itself和previous questions的一些建议,我提出了以下结构:
Codes
- Available
- 12345
- property 1
- property 2
- 32124
- property 1
- property 2
- Taken
- 23456
- property 1
- property 2
Users
- UID
- Codes
- 23456
这使得查询可用代码变得容易,并且将绑定到用户的代码与其中一个代码匹配(用于登录后进行验证)。
我遇到的问题是,为了从"可用"移动代码对象。为了" Taken",我必须将它从前者中删除并将其插入到后者中。这是正确的方法吗?我为实际删除数据而感到紧张。
有关如何正确构建此用例的任何建议吗?
答案 0 :(得分:5)
不移动数据可能更容易:
Codes
12345
claimedBy: false
property 1
property 2
32124
claimedBy: false
property 1
property 2
23456
claimedBy: '98-12-ad-1a-9c'
property 1
property 2
Users
98-12-ad-1a-9c
- Codes
- 23456
这样你就可以轻松:
ref.child('Codes')
ref.child('Codes').orderByChild('claimedBy').equalTo(false)
ref.child('Users').child(auth.uid).child('Codes')