使用Sqlite而不是Firebase的Presence系统构建Firebase

时间:2018-03-19 12:25:23

标签: android sqlite firebase firebase-realtime-database android-sqlite

您好我正在开发一个聊天应用程序,其中包含 - :

  • 消息当用户收到消息(Whatsapp Like)
  • 时从服务器中删除

(多数民众赞成为什么我没有使用firebase存在系统)

我的应用片段和活动结构为this

我的火力结构是 this

在我的仪表板活动中,我正在从服务器监听数据,如

mRootRef.child("Messeges").child(FirebaseAuth.getInstance()
            .getCurrentUser().getPhoneNumber())
            .addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            //Send CallBack with Event bus in ConversationListFragmen
           //Send CallBack to chattingActivity if User is chatting with someOne

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

当ConversationListFragment完成数据处理后,我将消息节点的值设置为“null”,因此从服务器中删除了消息

  • 现在出现问题

当Messege的值设置为null(服务器上的数据更改)

onDataChange

方法fires.This在messeges中创建重复

有人可以建议如何防止此问题或我应该如何构建我的服务器以便我可以删除此问题

(请注释“不良问题”,如果您认为这是不好的问题而不是downvoting我将删除此线程因为我需要80多个声誉才能进入堆栈溢出的android开发人员聊天室)

和平

1 个答案:

答案 0 :(得分:1)

改变这个:

.addValueEventListener(new ValueEventListener() {

到此:

.addListenerForSingleValueEvent(new ValueEventListener() {

这样它只会读取一次数据