如果终端必须读取数据,数据就不会停留在Firebase中

时间:2019-04-22 00:08:09

标签: android firebase firebase-realtime-database

我有一个应用程序,其中一对设备可以相互通信,但通信成功发生,但是当它们读取彼此放置的数据时,它将自动删除所有创建的Firebase实时条目,最后一个除外。< / p>

仅通过阅读它们就可以实现这种情况,我的意思是我有这样的代码:

FirebaseDatabase.getInstance().getReference().child("Chat").child("id").addValueEventListener(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                                if (dataSnapshot.exists()) {

                            (Use the snapshot and nothing else)

由于某种原因,它似乎最终删除了原始条目。

任何终端都不会读取的条目,只要它们不是故意删除的,它们总是一直保留在firebase中,所以看起来好像是读取部分中的错误。

我该怎么办,以便在发生读取操作时所有我不想删除的邮件都保留下来?

1 个答案:

答案 0 :(得分:0)

  FirebaseDatabase.getInstance().getReference().child("Chat").child("id").addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot ds, @Nullable String s) {
            Message value = ds.getValue(Message.class);
            messageEntries.add(value);
            adapter.notifyDataSetChanged();
        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
  • 这是从实时数据库读取数据的正确方法