init static method
Implementation
static Future<void> init({
required String generateTokenUrl,
List<SQField<dynamic>>? userDocFields,
}) async {
if (!isSignedIn)
await SQFirebaseAuth._loginWithCustomToken(generateTokenUrl);
userDocFields ??= [];
userDocFields
..insert(
0,
SQStringField('User ID')
..editable = false
..show = falseCond)
..insert(0, SQStringField('Username')..editable = false);
usersCollection = FirestoreCollection(
id: 'Users',
fields: userDocFields,
updates: const SQUpdates(adds: false, deletes: false),
);
await usersCollection.loadCollection();
if (isSignedIn) {
userDoc = usersCollection.getDoc(user!.uid);
userDoc ??= usersCollection.newDoc(id: user!.uid);
userDoc!.setValue('Username', MiniApp.user.username ?? MiniApp.user.id);
userDoc!.setValue('User ID', MiniApp.user.id);
unawaited(SQApp.analytics?.setUserId(user!.uid));
await usersCollection.saveDoc(userDoc!);
} else {
userDoc = null;
}
}