用户登录或注册时如何获取令牌

时间:2019-10-29 10:50:00

标签: firebase flutter firebase-authentication token

我无法为登录我的应用的用户存储用户令牌。

我已经实现了以下代码,这些代码有助于在Firestore的数据库中创建用户部分和令牌部分。

 @override
  void initState() {
   super.initState();
    _saveDeviceToken();
 }

_saveDeviceToken() async {

String uid = await widget.auth.currentUser();

String fcmToken = await _firebaseMessaging.getToken();

if (fcmToken != null) {
  var tokens = _db
      .collection('users')
      .document(uid)
      .collection('tokens')
      .document(fcmToken);

  await tokens.setData({
    'token': fcmToken,
  });
}}

如何从我实现的代码中登录的每个用户那里获取令牌?

1 个答案:

答案 0 :(得分:0)

这是我用来做我想你也想做的事情的代码:

首先,获取Firebase Cloud Messaging令牌:

void getFcmToken() async {
  String token = await FirebaseMessaging().getToken();
  print("Token $token");

  if (token != null) {
    await Firestore.instance
      .collection('users')
      .document(userId)
      .collection("tokens")
      .document(token)
      .setData({
        'pushToken': token,
      });
  }}

以下是Firebase身份验证用户ID的代码:

FirebaseAuth.instance.currentUser().then(onCurrentUserLoaded);

FutureOr onCurrentUserLoaded(FirebaseUser value) async {
print("user loaded: ${value}");

if (value == null) {
  // no userid found
} else {
  // POSSIBLY THIS IS YOUR ISSUE: 
_myUserId = value.uid;
}

}