1
にFirebaseデータベースノードデータをコピーすることはできません:は、私は単に別に、私は1つのFirebaseの場所に保存されている情報をコピーしようとしています別のノード
mFollowingCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b){
mBaseRef.child(USERS_LABEL).child(mUserID).child(FOLLOWING_LABEL).child(USERS_LABEL).child(mPollCreatorID).child(DISPLAY_NAME_LABEL).setValue(mPollCreatorDisplayName);
mBaseRef.child(POLL_LABEL).child(pollID).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mBaseRef.child(USERS_LABEL).child(mUserID).child(FOLLOWING_LABEL).child(POLL_LABEL).child(pollID).setValue(dataSnapshot);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getContext(), databaseError.getCode(), Toast.LENGTH_LONG).show();
}
});
} else {
mBaseRef.child(USERS_LABEL).child(mUserID).child(FOLLOWING_LABEL).child(USERS_LABEL).child(mPollCreatorID).child(DISPLAY_NAME_LABEL).removeValue();
}
}
});
私はこのコードを持っている場合は、アプリが簡単にクラッシュされます。ロギングエラーはなく、私が間違っていることを正確に特定することができません。基本的に、私はFirebaseデータをコピーするためのベストプラクティスを知りたいと思います。 onDataChange()
で
パーフェクト、今すぐ正しく動作します。また、私の.onCreateView()メソッドに多数の.addSingleEventListeners()があり、すべてFirebaseデータベース内の異なるノードにリンクされています。複数のリスナーを持つことは問題ありませんか?それとも、ベースノードに1人のリスナーを置いてそこから作業するのがベストプラクティスですか? – tccpg288
コピーするノードごとにリスナーがあることに問題はありません。 –