gpt4 book ai didi

android - 如何让 Firebase 在数据库的三个不同区域显示相同的 ID?

转载 作者:可可西里 更新时间:2023-11-01 01:07:54 25 4
gpt4 key购买 nike

我有一个使用 Android 和 iOS 都使用的 firebase 函数的应用。

使用下面的 Android recordToFirebase() 方法:

  • 它添加了一个“历史”节点
  • 它为 Users/Drivers & Users/Riders 添加了一个“历史”节点
  • 它在 Users/Drivers & Users/Riders 中将 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 中运行上面的代码时,它应该在数据库中执行此操作,它确实如此,它还为所有 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 代码中一样工作?

最佳答案

对于 IOS:

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")

let key = historyRef.childByAutoId().key
historyRef.child(key).setValue(true)
riderRef.child(key).setValue(true)
driverRef.child(key).setValue(true)

关于android - 如何让 Firebase 在数据库的三个不同区域显示相同的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53737939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com