首页 文章

Firebase DB将数据一个节点复制到另一个节点

提问于
浏览
1

我试图从我的数据库中的一个节点(groups / groupId / matches)添加数据到另一个节点(users / userId / groups)

这个方法执行一次完美,但如果我尝试第二次执行我遇到麻烦,得到这个错误

com.google.firebase.database.DatabaseException: 
Failed to convert value of type java.lang.String to boolean

从使用Firebase我不知道SetValue你应该覆盖任何现有的数据,我已经在我的应用程序中看到了这一点

只是不确定我的下一步行动和任何帮助非常感谢 .

方法调用

moveFirebaseRecord(groupsDatabase.child(firebaseUser.getUid()).child("matches"),
                            usersDatabase.child(uId).child("groups"));

方法

public void moveFirebaseRecord(DatabaseReference fromPath, final DatabaseReference toPath) {
    fromPath.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            toPath.setValue(dataSnapshot.getValue(), new DatabaseReference.CompletionListener() {
                @Override
                public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
                    if (databaseError != null) {
                        Toast.makeText(getApplicationContext(), "COPY FAILED", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(getApplicationContext(), "COPY SUCCESS", Toast.LENGTH_LONG).show();

                    }
                }
            });
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Toast.makeText(getApplicationContext(), "onCancelled- copy fail", Toast.LENGTH_LONG).show();

        }
    });
}

1 回答

相关问题