【发布时间】:2017-08-13 04:58:43
【问题描述】:
我相信在没有任何重复的情况下执行此操作的正确方法是使用事务,但是由于某种原因,函数中传递的 MutableData 对象不会返回任何子对象,尽管我向 Firebase 添加了一些虚拟数据用于测试的数据库。谁能指出我正确的方向?干杯!
以下是相关代码:
数据库:
games/
0/
...
1/
...
交易:
private void startNewGame(DatabaseReference _DatabaseRef) {
_DatabaseRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Log.v("CUSTOMDEBUG", Long.toString(mutableData.getChildrenCount()));
return null;
}
@Override
public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
}
});
}
由于某种原因,上面的代码将 0 记录为子计数,尽管我添加了 2 个具有键“0”和“1”的子。真正奇怪的是,如果我试图明确地得到一个孩子,它会起作用!
mutableData.child("1");
实际上返回所有数据的正确孩子!
感谢任何帮助。
【问题讨论】:
-
我不明白你要解释什么。您想在这里实现什么目标?
标签: java android firebase firebase-realtime-database