Firebase UI RecyclerView - 处理映射
Firebase UI RecyclerView - Handling mapping
下面是我的示例结构:
channels
|
|____channel0
|
|___messages
|
|_______ uniqueKey0: true
|
|_______ uniqueKey1: true
messages
|
|_____ uniqueKey0
| |______ from: Alex
| |______ text: Hi!
|
|
|_____ uniqueKey1
|______ from: Kate
|______ text: Hello
我正在试用 Firebase UI Recycler 查看消息。我有两个问题:
我正在做的是将 /channels/messages 的引用提供给 FirebaseAdapter 并获取密钥。获取密钥后,我获取详细信息,然后填充视图持有者。在这种情况下,我不确定如何处理消息文本发生更改的情况。因为我正在收听 /channels/messages,所以我没有收到消息更改事件。
为了解决上述问题,我想到了以下结构,我知道这是违反最佳实践的,因为它应该使数据尽可能平坦。所以我想知道在这种情况下采用这种方法真的很糟糕还是更有意义?
messages
|
|____channel0
|_____ uniqueKey0
| |______ from: Alex
| |______ text: Hi!
|
|
|_____ uniqueKey1
|______ from: Kate
|______ text: Hello
是的,你可以使用这种方法:
messages
|
|____channel0
|_____ uniqueKey0
| |______ from: Alex
| |______ text: Hi!
|
|
|_____ uniqueKey1
|______ from: Kate
|______ text: Hello
然后你可以这样做:
DatabaseReference ref=FirebaseDatabase.getReference().getInstance().child("messages").child("channel0").orderByChild("from").equalTo(Alex);
然后您将能够收到文本:嗨!
而上面的数据结构其实是扁平化的,是这样的:
messages
channel0
randomid
keys:values
randomid
keys:values
这不是平的:
messages
channel0
channel1
channel2
randomid
keys:values
name
username:peter
randomid
keys:values
name
username:peter
等等..
构建数据库时,您所要做的就是考虑查询。如果我做了这个或那个,查询方便吗?可以查询吗?
下面是我的示例结构:
channels
|
|____channel0
|
|___messages
|
|_______ uniqueKey0: true
|
|_______ uniqueKey1: true
messages
|
|_____ uniqueKey0
| |______ from: Alex
| |______ text: Hi!
|
|
|_____ uniqueKey1
|______ from: Kate
|______ text: Hello
我正在试用 Firebase UI Recycler 查看消息。我有两个问题:
我正在做的是将 /channels/messages 的引用提供给 FirebaseAdapter 并获取密钥。获取密钥后,我获取详细信息,然后填充视图持有者。在这种情况下,我不确定如何处理消息文本发生更改的情况。因为我正在收听 /channels/messages,所以我没有收到消息更改事件。
为了解决上述问题,我想到了以下结构,我知道这是违反最佳实践的,因为它应该使数据尽可能平坦。所以我想知道在这种情况下采用这种方法真的很糟糕还是更有意义?
messages | |____channel0 |_____ uniqueKey0 | |______ from: Alex | |______ text: Hi! | | |_____ uniqueKey1 |______ from: Kate |______ text: Hello
是的,你可以使用这种方法:
messages
|
|____channel0
|_____ uniqueKey0
| |______ from: Alex
| |______ text: Hi!
|
|
|_____ uniqueKey1
|______ from: Kate
|______ text: Hello
然后你可以这样做:
DatabaseReference ref=FirebaseDatabase.getReference().getInstance().child("messages").child("channel0").orderByChild("from").equalTo(Alex);
然后您将能够收到文本:嗨!
而上面的数据结构其实是扁平化的,是这样的:
messages
channel0
randomid
keys:values
randomid
keys:values
这不是平的:
messages
channel0
channel1
channel2
randomid
keys:values
name
username:peter
randomid
keys:values
name
username:peter
等等..
构建数据库时,您所要做的就是考虑查询。如果我做了这个或那个,查询方便吗?可以查询吗?