如何为同一个用户存储不同的注册令牌?

时间:2018-05-17 10:51:37

标签: node.js firebase firebase-cloud-messaging google-cloud-firestore

我正在尝试使用firebase FCM服务向用户发送通知。当用户登录时,我将其token_id存储到Firestore数据库。

这就是我存储token_id的方式。

summaryData(data):Observable <SummaryReport>{
    debugger;
    let headers = new HttpHeaders({'Content-Type': 'application/json'});
    return this.http.post<SummaryReport>(this.baseurl,data,{headers:headers})
  }

但是当我在不同的设备中使用相同的用户登录时,之前的token_id会使用新的一个进行更新..

有什么方法可以创建一个token_ids列表,以便我可以在node.js函数中使用它

1 个答案:

答案 0 :(得分:1)

您可以做的一件事是将Firestore架构更改为以下内容:

/users (collection)
  /userId (document)
    /name (field)
    /otherStuff (fields)
    /pushTokens (collection)
      /deviceId (document)
        /token (field)

这样,您就可以为每个用户放置多个令牌。您也可以使用array

代替集合

如果您能找到一个好的设备ID来配对令牌,这将非常有效。曾经有一个ANDROID_ID值,但如果我没记错的话,不再建议使用它。讨论如何处理设备组有点广泛,所以我建议查看我的answer here