1
我試圖從一個節點在我的數據庫中添加數據(組/的groupId /匹配)到另一個節點(用戶/用戶名/組)火力地堡DB數據拷貝一個節點到另一個
此方法執行一次完美的,但如果我嘗試執行我第二次在麻煩運行,收到此錯誤
com.google.firebase.database.DatabaseException:
Failed to convert value of type java.lang.String to boolean
從使用火力地堡我已瞭解該的SetValue你應該覆蓋所有現有數據和我在我的應用程序看到這個
只是不確定我的下一步行動,任何幫助都非常感謝d。
方法調用
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();
}
});
}
感謝您的回覆Jeff,我用addValueEventListener試過了,發生了同樣的錯誤。 我會看看雲功能來解決這個問題,我們建議我們使用雲功能來檢查節點中是否存在數據,以及是否將其複製過來? –
是的,雲功能聽起來像是一個很好的解決方案。您的應用程序中的哪個位置是您的com.google.firebase.database.DatabaseException: 無法將類型爲java.lang.String的值轉換爲布爾值?哪條線路導致它? – Jeff
我不確定哪一行導致它或它爲什麼它第一次工作,而不是後續嘗試(即使當我使用addValueEventListener) 我的Match類中有2個布爾值將被複制。所以也許這是造成這個問題的原因之一。當我嘗試將我的方法中的值記錄到控制檯時,並不十分清楚 –