I have an activity where I get the uid
of a user from Firebase authentication:
public class MainActivity extends DaggerAppCompatActivity {
@Inject UserViewModel userViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
userViewModel.setUid(uid);
}
}
I'm using this uid
in my view model class:
public class UserViewModel extends ViewModel {
private CollectionReference usersRef;
@Inject
UsersViewModel(CollectionReference usersRef) {
this.usersRef = usersRef;
}
void setUid(String uid) {
DocumentReference uidRef = usersRef.document(uid);
//Use uidRef
}
}
And this my app module class:
class AppModule {
@Singleton
@Provides
static FirebaseFirestore provideFirebaseFirestoreInstance() {
return FirebaseFirestore.getInstance();
}
@Singleton
@Provides
static CollectionReference provideUsersCollectionRef(FirebaseFirestore db) {
return db.collection("users");
}
@Singleton
@Provides
static DocumentReference provideUidDocumentRef(CollectionReference usersRef) {
return usersRef.document(uid); //How to add the uid here
}
}
The question is, how can I add the uid
in the app module class, so I can inject the DocumentReference directly in my view model class like this:
public class UserViewModel extends ViewModel {
private DocumentReference uidRef;
@Inject
UserViewModel(DocumentReference uidRef) {
this.uidRef= uidRef;
//Use uidRef
}
}