我正在尝试收集用户的OneSignalID。 以下代码为每个用户添加一个playerID。 当同一用户使用其他设备登录时,将更新播放器ID。
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)。 我怎么能这样做?
答案 0 :(得分:2)
您可以通过将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
显然,您需要更改检索值的方式。