Gen*_* Bo 5 android firebase firebase-realtime-database
通过代码实验室进行Firebase Android友好聊天 - 访问https://codelabs.developers.google.com/codelabs/firebase-android/ - 我遇到了一个问题,即第7步没有达到/调用任何回调:阅读消息
通过/ android-start项目,我能够完成第一步2-6:
但是,当我去做第7步时 - 没有一个回调被调用.我运行应用程序,登录/退出步骤正常.
我initial_messages.json
按照那里的指示导入并完全复制了第7步的代码(试图确保我可能没有错过任何东西的几次尝试) ..然后甚至尝试在完成/ android项目.还有一个问题,即回调永远不会运行,因此微调器就会挂起.
由于代码太多,我会发布我期待回调运行的部分.谁能告诉我这里可能缺少什么?没问题 - 如果它有助于添加更多我的代码.谢谢阅读
// mProgressBar.setVisibility(ProgressBar.INVISIBLE);
// New child entries
mFirebaseDatabaseReference = FirebaseDatabase.getInstance().getReference();
SnapshotParser<FriendlyMessage> parser = new SnapshotParser<FriendlyMessage>() {
@Override
public FriendlyMessage parseSnapshot(DataSnapshot dataSnapshot) {
...
}
};
...
DatabaseReference messagesRef = mFirebaseDatabaseReference.child(MESSAGES_CHILD);
...
FirebaseRecyclerOptions<FriendlyMessage> options =
new FirebaseRecyclerOptions.Builder<FriendlyMessage>()
.setQuery(messagesRef, parser)
.build();
mFirebaseAdapter = new FirebaseRecyclerAdapter<FriendlyMessage, MessageViewHolder>(options) {
@Override
public MessageViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
...
}
@Override
protected void onBindViewHolder(final MessageViewHolder viewHolder,
int position,
FriendlyMessage friendlyMessage) {
....
}
};
mFirebaseAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onItemRangeInserted(int positionStart, int itemCount) {
...
}
});
mMessageRecyclerView.setAdapter(mFirebaseAdapter);
Run Code Online (Sandbox Code Playgroud)
在 FirebaseUI 3.0 版本中,引入了新的生命周期策略。FirebaseRecyclerAdapter
因此,您现在需要在适配器上显式调用startListening()
&来指示它开始和停止从数据库检索数据。stopListening()
适配器生命周期 - 在以前的版本中,适配器在实例化后立即开始监听,并调用
cleanup()
停止监听。在 3.x 中,您必须显式调用startListening()
或stopListening()
将 a 传递LifecycleOwner
给选项构建器。
这是最近发布的版本,代码实验室似乎尚未更新以反映这一重大更改。我已将此作为GitHub 存储库上的问题firebase/friendlychat-android
提出。
归档时间: |
|
查看次数: |
407 次 |
最近记录: |