【发布时间】:2018-12-12 07:23:15
【问题描述】:
我有一个使用 Android 和 iOS 都使用的 firebase 功能的应用。
使用下面的 Android recordToFirebase() 方法:
- 它添加了一个“历史”节点
- 它为用户/司机和用户/骑手添加了一个“历史”节点
- 它在用户/驱动程序和用户/骑手中将 id 设置为 true
DatabaseReference riderRef = FirebaseDatabase.getInstance().getReference("Users/Riders").child(riderId).child("history");
DatabaseReference driverRef = FirebaseDatabase.getInstance().getReference("Users/Drivers").child(driverId).child("history");
final DatabaseReference historyRef = FirebaseDatabase.getInstance().getReference().child("history");
requestId = historyRef.push().getKey(); // same key for all 3 refs
driverRef.child(requestId).setValue(true);
riderRef.child(requestId).setValue(true);
在 Android 中运行上述代码时,它应该在 db 中执行此操作,它 确实,它还为所有 3 个(history/id、Users/Drivers/history/id、Users/Riders/history/id)分配了标志 ID:
- Users
- Drivers
- history
- Ljdfuhkd8_kdnjd : true
- Riders
- history
- Ljdfuhkd8_kdnjd : true
- history
- Ljdfuhkd8_kdnjd
- email: me@me.com
在 iOS 中,方法相同(与 Android 相同,仅在 Swift 中):
let historyRef = ref.child("history")
let riderRef = ref.child("Users/Riders").child(riderID).child("history")
let driverRef = ref.child("Users/Drivers").child(driverID).child("history")
driverRef.childByAutoId().setValue(true)
riderRef.childByAutoId().setValue(true)
当上面的 Swift 方法运行时,它并没有像 Android 代码那样做, 它为所有三个分配一个不同的 id。
如何重写此代码以使其像在 Android 代码中一样工作?
【问题讨论】:
标签: android ios swift firebase