【发布时间】:2018-08-18 13:53:42
【问题描述】:
需要在父节点下添加一个新节点“已完成”,该节点最终将包含骑行结束时节点“请求”的所有信息。
所以基本上,我需要先创建节点“已完成”,但它不添加它。
数据库
{
"Requests" : {
"iowpxU6WKUWpzWJyfssSoOVCPFj2" : {
".priority" : "f8118c3k3v",
"destination" : "221 Prince William St",
"details" : {
"driver" : "nYIAHSYimJMHbMkXqDt9PQ0U3Nf2",
"location" : "27 Horsfield St",
"request status" : "accepted",
"ridePrice" : 3.75,
"rideStatus1" : "arrived at pickup",
"rideStatus2" : "rider in vehicle",
"rideStatus3" : "destination bound",
"rideStatus4" : "arrived at destination",
"rider" : "iowpxU6WKUWpzWJyfssSoOVCPFj2",
"riderPaid" : "true"
},
"Users" : {
"Drivers" : {
"nYIAHSYimJMHbMkXqDt9PQ0U3Nf2" : {
"driver" : "nYIAHSYimJMHbMkXqDt9PQ0U3Nf2",
"email" : "driver@me.com",
"name" : "driver",
"password" : "whatever",
"phone" : "5551212",
"rates" : "0"
}
},
"Riders" : {
"iowpxU6WKUWpzWJyfssSoOVCPFj2" : {
"avatarUrl" : "",
"email" : "rider@me.com",
"name" : "rider",
"password" : "whatever",
"phone" : "5551313",
"rates" : "0",
"riderId" : "iowpxU6WKUWpzWJyfssSoOVCPFj2"
}
}
}
}
addNewNode
private void addNewNode() { // TODO: ........ NOT ADDING NEW NODE :-| ..........
Toast.makeText(this, "addNewNode", Toast.LENGTH_LONG).show();
DatabaseReference newNode = FirebaseDatabase.getInstance().getReference("Completed");
newNode.child(riderId).push().addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Toast.makeText(DriverTripDetail.this, "addNewNode: onDataChange", Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
任何有关我如何解决此问题的帮助将不胜感激。
【问题讨论】:
-
我已经尝试了所有这些引用,但仍然没有添加节点“已完成”。 “已完成”将包含请求中的所有项目,所以我需要使用 setValue 吗?我尝试这样做: DatabaseReference newNode = FirebaseDatabase.getInstance().getReference("Completed").child(riderId); newNode.push().setValue(1);但这只是增加了:已完成:1 到 db ......对不起,我是一个菜鸟,我自己学习和堆栈溢出:)
-
Firebase 数据库将值存储在路径中。如果没有值,则路径不存在。您的代码创建了对
/Completed/$pushID的引用。但未设置任何值,因此不会创建路径。像这样的东西会起作用:ewNode.child(riderId).push().setValue(true),因为它设置了一个值。 -
@FrankvanPuffelen 成功了,感谢您的帮助...迎接下一个挑战。
-
很高兴听到丽兹。我把它写在一个答案中。
标签: android firebase firebase-realtime-database