【问题标题】:How can I get Firebase to display the same id in three separate areas of the database?如何让 Firebase 在数据库的三个不同区域显示相同的 ID?
【发布时间】: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


    【解决方案1】:

    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) 
    

    【讨论】:

    • 我已经为此工作了 3 天,并认为这是导致我的问题的原因。尽善尽美
    猜你喜欢
    • 2020-10-22
    • 1970-01-01
    • 2013-05-05
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多