Мы планировали использовать анонимную аутентификацию Firebase и базу данных в реальном времени для нашего приложения для Android.Затем мы хотели попробовать, можно ли использовать наш ключ Firebase Api в другом приложении для доступа к нашей базе данных, и мы создали поддельное приложение с тем же именем пакета, поместили в него существующий ключ Firebase Api и подписали его новым ключом Sign.,Как только мы запустили его, он смог получить доступ к нашим предыдущим приложениям.(Поскольку ключ Firebase Api можно легко извлечь из apk, мы хотели смоделировать одно и то же действие)
Несмотря на то, что в большинстве ответов говорится, что Firebase проверяет подпись приложения, мы смогли получить доступ к базе данных с помощьюсовершенно другой APK.
Чего-то не хватает на стороне конфигурации Firebase?
Редактировать:
Что я делал шаг за шагом:
1) Создан новый проект Android с тем же именем пакета, что и существующий.
2) Поместите google-services.json существующего проекта в новый проект
3) Написали следующий код в новый проект
final FirebaseAuth mAuth;
mAuth = FirebaseAuth.getInstance();
FirebaseUser currentUser = mAuth.getCurrentUser();
final String TAG = "AuthTest";
mAuth.signInAnonymously()
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInAnonymously:success");
FirebaseUser user = mAuth.getCurrentUser();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInAnonymously:failure", task.getException());
}
}
});
4) Подписали APK с полностьюновый ключ подписи
5) Запустите приложение на устройстве.
Результат : анонимный пользователь был создан в нашем существующем проекте Firebase