Swift - Firebase 使用相同的键添加多个值
Swift - Firebase add multiple value with same key
我正在尝试收集用户的 OneSignalID。
以下代码为每个用户添加一个 playerID。
当同一用户使用不同的设备登录时,playerID会更新。
let status : OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
let oneSignalUser = status.subscriptionStatus.userId
if oneSignalUser != nil {
let aUser = Auth.auth().currentUser!
let post = ["playerID": oneSignalUser!] as [String: Any]
Database.database().reference().child("usersToOneSignal").child(aUser.uid).setValue(post)
}
我希望每个用户都被添加到每个设备。
所以我想在密钥 "kwvZPH......" 下有多个 playerID(这是 FireBase UserKey)。
我该怎么做?
您可以通过将 OneSignal ID 保存为键而不是值来实现您想要的。然后 playerID
不会在登录到新设备时被覆盖。值无所谓,只要存在即可(我会设置成true
)。
let status : OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
let oneSignalUserID = status.subscriptionStatus.userId
if oneSignalUser != nil {
let aUser = Auth.auth().currentUser!
// get the original path you were using
let originalPath = Database.database().reference().child("usersToOneSignal").child(aUser.uid)
// set `true` at the OneSignal key in the database
originalPath.child(oneSignalUserID!).setValue(true)
}
会给出一个数据库:
- usersToOneSignal
|
| - kwzphiusgdfoiaudbksdhf763truygi
|
| - 4e762345-76654afedc-65342287fc-57635472: true
| - 7645736-efcab873465-7635476823f-ab62354: true
显然,您需要更改检索值的方式。
我正在尝试收集用户的 OneSignalID。 以下代码为每个用户添加一个 playerID。 当同一用户使用不同的设备登录时,playerID会更新。
let status : OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
let oneSignalUser = status.subscriptionStatus.userId
if oneSignalUser != nil {
let aUser = Auth.auth().currentUser!
let post = ["playerID": oneSignalUser!] as [String: Any]
Database.database().reference().child("usersToOneSignal").child(aUser.uid).setValue(post)
}
我希望每个用户都被添加到每个设备。 所以我想在密钥 "kwvZPH......" 下有多个 playerID(这是 FireBase UserKey)。 我该怎么做?
您可以通过将 OneSignal ID 保存为键而不是值来实现您想要的。然后 playerID
不会在登录到新设备时被覆盖。值无所谓,只要存在即可(我会设置成true
)。
let status : OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState()
let oneSignalUserID = status.subscriptionStatus.userId
if oneSignalUser != nil {
let aUser = Auth.auth().currentUser!
// get the original path you were using
let originalPath = Database.database().reference().child("usersToOneSignal").child(aUser.uid)
// set `true` at the OneSignal key in the database
originalPath.child(oneSignalUserID!).setValue(true)
}
会给出一个数据库:
- usersToOneSignal
|
| - kwzphiusgdfoiaudbksdhf763truygi
|
| - 4e762345-76654afedc-65342287fc-57635472: true
| - 7645736-efcab873465-7635476823f-ab62354: true
显然,您需要更改检索值的方式。