Я хотел бы преобразовать следующий код базы данных в реальном времени для использования Firebase:
private void setupFirebaseAuth(){
Log.d(TAG, "setupFirebaseAuth: setting up firebase auth.");
mAuth = FirebaseAuth.getInstance();
mFirebaseDatabase = FirebaseDatabase.getInstance();
myRef = mFirebaseDatabase.getReference();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//1st check: Make sure the username is not already in use
if(firebaseMethods.checkIfUsernameExists(username, dataSnapshot)){
append = myRef.push().getKey().substring(3,10);
Log.d(TAG, "onDataChange: username already exists. Appending random string to name: " + append);
}
username = username = append;
//add new user to the database
//add new user_account_settings to the database
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged:signed_out");
}
// ...
}
};
}
, где переменные определены следующим образом:
//firebase
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
private FirebaseMethods firebaseMethods;
private FirebaseDatabase mFirebaseDatabase;
private DatabaseReference myRef;
Я могу использовать большинство из нихза исключением случаев, когда база данных определена как:
private FirebaseDatabase mFirebaseDatabase;
private DatabaseReference myRef;
Это будет:
private FirebaseFirestore db;
Что будет соответствовать DatabaseReference для Firestore, потому что позже я не знаю, какадаптировать myRef.addListenerForSingleValueEvent к облачному хранилищу пожаров