При разработке приложений Flutter популярным выбором является интеграция Firebase для аутентификации пользователей. Часто необходимая важная часть информации — это идентификатор пользователя. В этом сообщении блога мы рассмотрим несколько методов получения идентификатора пользователя из Firebase в приложении Flutter. Попутно мы будем предоставлять примеры кода и пояснения, которые облегчат его понимание и реализацию в ваших собственных проектах.
Метод 1: использование аутентификации Firebase
Аутентификация Firebase предоставляет встроенные функции для прямого получения идентификатора пользователя. Предполагая, что вы уже настроили аутентификацию Firebase в своем приложении Flutter, вы можете получить идентификатор пользователя, используя следующий фрагмент кода:
import 'package:firebase_auth/firebase_auth.dart';
final user = FirebaseAuth.instance.currentUser;
final userId = user.uid;
Метод 2: использование базы данных Firebase Realtime
Если вы используете базу данных Firebase Realtime для хранения информации о пользователях, вы можете получить идентификатор пользователя из базы данных. Вот пример того, как этого добиться:
import 'package:firebase_database/firebase_database.dart';
final DatabaseReference userRef = FirebaseDatabase.instance.reference().child('users');
final userId = await userRef.child('userId').once().then((DataSnapshot snapshot) => snapshot.value);
Метод 3: Cloud Firestore
Для тех, кто использует Cloud Firestore в качестве базы данных в своем проекте Flutter Firebase, идентификатор пользователя можно получить следующим образом:
import 'package:cloud_firestore/cloud_firestore.dart';
final user = await FirebaseFirestore.instance.collection('users').doc('userDocId').get();
final userId = user.data()['userId'];
Метод 4: настраиваемое поле идентификатора пользователя
В некоторых случаях вам может потребоваться назначить индивидуальный идентификатор каждому пользователю во время регистрации. Чтобы получить этот собственный идентификатор, вы можете использовать следующий подход:
import 'package:firebase_auth/firebase_auth.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
final user = FirebaseAuth.instance.currentUser;
final customId = await FirebaseFirestore.instance.collection('users').doc(user.uid).get().then((DocumentSnapshot snapshot) => snapshot.data()['customId']);
В этой статье мы рассмотрели различные методы получения идентификатора пользователя из Firebase в приложении Flutter. Мы рассмотрели использование аутентификации Firebase, базы данных Firebase Realtime, Cloud Firestore и получение пользовательских идентификаторов пользователей. Каждый представленный здесь метод эффективен и может использоваться в зависимости от требований вашего конкретного проекта. Внедрив эти методы, вы получите инструменты для беспрепятственного доступа и использования идентификаторов пользователей в ваших приложениях Flutter Firebase.