Sha1 android studio firebase

How to Get SHA-1 key in Android Studio for Firebase.

There are two methods of getting SHA-1 key, but First one is not working for Windows user. So, if you are a Windows user then go for 2nd Method.

Update:- On Android Studio Latest version(on 24 Sept 2021) 2020.3.1 for Windows 64-bit (912 MiB), Step 2 will not Work. So, go for Step 3 .

1. Using Keytool

Open a terminal and run the keytool the utility provided with Java to get the SHA-1 fingerprint of the certificate. You should get both the release and debug certificate fingerprints.

To get the release certificate fingerprint:

For Windows:-

For Mac/Linux:-

Note:- If you are not able to get your SHA-1 key using Keytool then Follow the below Method, in this method you will definitely get your SHA-1 key.

2. Using Gradle’s Signing Report

You can also get the SHA-1 of your signing certificate by Gradle signingReport . But for that, you have to follow some steps.

Step 1 : – First of all
=> open your project in Android Studio and open the project.
=>In the project, go to the android/app directory where you find build.gradle file. => Open it.
=> After opening, you’ll find an Open for Editing in Android Studio option, Click on it and open it in a new Tab. See the Below Image.

Step 2 :- After opening the file in the new tab, Wait for some time until Gradle Build Model Process Completes.

=> After Build Successful, go to the upper-right section where you find the Gradle option. Click On it.
=> After that Open Android->Tasks->android and Double click on signingReport .
See the Below Image For Help.

Step 3:- After Clicking on it, you’ll get a List of SHA-1 Keys but you have to choose Debug-Debug SHA-1 Key and copy and paste it on your Firebase. See the Below Image:-

3. Using gradlew

Step 1:- Right-click on ‘gradlew’ and go to ‘Open in Terminal’ This file is found under <>/android/gradlew

Step 2:- Type the following in command.

If did not work first try the second command:

Источник

What’s keytool, why can’t it be found, and why does Firebase even want a “SHA-1”?

If you’ve followed any of the Firebase tutorials for Android, you probably came across an instruction like “Add the SHA-1 hash for your project.” You may have even been linked to this page, where you were told to type keytool -list -v followed by a strange symbols involving -keystore .

Now for many developers, including most Google employees with the standard dev tools, this just works and we don’t question it. Others will get one of these super exciting error messages:

keytools: command not found

‘keytool’ is not recognized as an internal or external command

This is also an optional step for many of Firebase’s products. Currently Firebase Dynamic Links and some Firebase Authentication products (such as Google Authentication and Phone Authentication) are the only products that need a SHA-1.

What is “keytool”?

Whenever I need to figure out what a command does, I search for man . My first result is Oracle’s documentation saying:

Manages a keystore (database) of cryptographic keys, X.509 certificate chains, and trusted certificates.

That’s a really cool one liner, but what you need to know is that it generates a file (called a “keystore”) that can be used to “sign” an Android application. This signature is used to verify authenticity. The really cool thing here is that it’s practically impossible to fake a signature without stealing the keystore file, but you can publish a “fingerprint” of your signature so anyone can validate the signature on their own.

Ok, where is it?

keytool is a standard program that ships with the Java Development Kit (JDK) or runtime (JRE). Both Oracle’s JDK and OpenJDK ship with it, and on MacOS and Linux it’s usually simple enough to just install the JDK and call it a day.

On Windows or complex environments, you’ll want to look in the /bin directory of the JDK. You can either invoke it directly by typing this full path, or add it to your system’s $PATH environment variable.

I already installed Android Studio, do you mean I have to install Java too?

keytool ships with a standard Android Studio install as part of the JRE needed to run Android Studio itself. If you look at where you installed Android Studio (usually C:\Program Files\Android\Android Studio on Windows or /Applications/Android Studio on Mac), you’ll find a folder inside called jre . You’ll be able to find the keytool command there.

Helpful hint: you can drag/drop this keytool application to get its full path in your terminal on MacOS, Windows 10, and most standard Linux distributions!

I installed the Android SDK with Unity, do you mean that I need to install the JDK or Android Studio to use Firebase?

If you navigate to your Unity installation, you should see keytool under PlaybackEngines/AndroidPlayer/OpenJDK . Once again, you can drag and drop this into a terminal as demonstrated above or you can add this to your $PATH if you feel so inclined.

Читайте также:  У андроида не фокусируется камера

debug.keystore doesn’t exist!

If you’ve gone through all of this, enter the appropriate command line, and you get a new message saying:

keytool error: java.lang.Exception: Keystore file does not exist:

All you have to do is perform a full Android build. debug.keystore will be auto-generated the first time you make an Android device build of an application.

If you want to look for the debug.keystore on your own, this is usually stored in a hidden folder named .android in your user home directory. You can type into a terminal ls

/.android/debug.keystore on Linux and MacOS or dir %USERPROFILE%\.android\debug.keystore on Windows to find it.

This sounds cool, but what’s the SHA-1 and why does Firebase care?

The act of signing an application doesn’t have any intrinsic value without some way of verifying the identity of the signer. This is what the SHA-1 fingerprint provides, you can pull the SHA-1 out of a signed Android game or application and check it against some central point of authority to ensure the signature itself was valid. But who is the authority for something that lives on a local development machine?

When an application talks to Firebase, Firebase should only consider the application legitimate if its SHA-1 corresponds to one you have listed in the Firebase Console for your application. This means that Firebase itself acts as an authority and can tell that an incoming application looks like one that you’ve made.

When your application tries to use any Firebase service on Android, Firebase’s servers confirm that two things are true:

  1. the application ID matches one of the applications in your project.
  2. the SHA-1 of of the signed game or application matches a SHA-1 that the developer uploaded to the Firebase project’s console.

This has an interesting side effect that a combination of package id and the SHA-1 are used to match a game or application with a Firebase project. Because of this, you cannot have two Firebase projects that contain the same package id and signing signature. It is expected that you’ll use the same development SHA-1 across many projects, but if you ever see An OAuth2 client already exists for this package name and SHA-1 in another project , you’ll want to ensure that your package name is unique.

Wrap Up

Go ahead and finish setting up Firebase with Android, Unity, or whatever else you needed a keytool to unlock. And don’t forget to run through this checklist when you’re ready to ship. You’ll probably see keytool surface once again when you’re ready to sign a release build.

Источник

How to Generate SHA1, MD5, and SHA-256 Keys in Android Studio?

SHA1, MD5, and SHA-256 are cryptographic functions that will convert your input to 160 bit (20 bytes) value. It is a secure key that is used to store very important data. In Android SHA1, MD5 and SA-256 keys are very important. If you want to add external APIs from Google such as Maps and other external features inside your app, then you have to add your key to Google’s console. The SHA keys are the unique identity of your application. These keys are very important and they are required when you have to add your application to the Google Play store. In this article, we will take a look at creating these keys in Android Studio.

1. SHA-1 Keys

SHA-1 also referred to as the Secure Hash Algorithm. It is a cryptographic hash function that will take input and it produces a 160-bit hash value. This generated hash value is known as a message digest. This generated hash value is then rendered in a hexadecimal format number which is 40 digits long. This key was designed by the United States National Security Agency which was used as an Information Processing Standard. SHA key was introduced in 1995.

Uses of SHA-1 key:

  • It is used for Cryptography.
  • By using this key the input data is converted into a 160-bit hash value which is difficult to decode.
  • These keys are also used for Data Integrity.

2. MD-5 Keys

MD-5 keys are also referred to as Message Digest. These keys are faster than SHA-1 keys and they are simpler in usage than SHA-1 keys. MD-5 is having a length of 128 bits of the message digest. MD-5 is having poor security in comparison to SHA-1 keys. MD-5 key was introduced in 1992.

Читайте также:  Iq navi прошивка для автомагнитолы андроид

Uses of MD-5 key:

  • MD-5 keys are used for Cryptography.
  • They are used to store data in 128-bit values.

3. SHA-256 Keys

SHA-256 is referred to as Secure Hash Algorithm 256. It is a cryptographic hash function that takes an input of 20 bytes and rendered this value in hexadecimal format. The value generated is known as the message digest. The generated hexadecimal value is around 40 digits long.

Uses of SHA-256 key:

  • SHA-256 keys are used in Cryptography.
  • They are also used in Data Integrity.

Step by Step Guide to Generate SHA1, MD5, and SHA-256 Keys in Android Studio

Step 1: For creating these keys you have to, first of all, create a new project in Android Studio or you can generate these keys in your existing projects as well. If you want to create a new project then check the article on How to Create a new Project in Android Studio.

Step 2: Now inside Android Studio Click on Gradle Tab as shown in the below image.

Step 3: After clicking on Gradle Tab you will get to see the below screen on which click on your “AppName”. After clicking on your App Name then you will get to see three options inside that click on the last options “app“. After clicking on the app, Navigate to “Tasks”. Inside Tasks, navigate to “android” and double click on the “signingreport” option.

After clicking on the “signing report” your keys will be generated as shown in the below screenshot.

You can use these keys while integrating Firebase into your App. When you want to add Google APIs inside your app then these keys are very important.

Источник

Строим мобильное приложение на Firebase — бесплатном и мощном бэкенде Google

Содержание статьи

Сказать, что по нашей улице прошел инкассатор, — это ничего не сказать. Займемся изучением инструмента вплотную!

Farewell VK, hello Firebase

В своих предыдущих статьях я рассматривал VK API как бесплатный бэкенд мобильных приложений. У него есть ряд преимуществ. Хостинг безлимитный, типов контента много, управлять им может даже школьник, достаточно объяснить ему структуру наполнения приложения.

Но один недостаток фатален — негибкость сервера. Запись на стене нельзя редактировать через какое-то время, и не получится отправить в приложение сообщение об ее обновлении. Нужно каждый раз выкачивать все объекты со стены и отслеживать все изменения, строго перебирая записи. Серьезные проекты так не работают, и «хватит это терпеть!» ©.

На наше счастье, Google выкупила компанию Firebase и открыла ее для использования всем желающим.

Подробнее, что там есть интересного

Xakep #218. Смотри во все глаза

В нашем распоряжении имеются:

  • Analytics — аналитика по приложению: размер аудитории, информация о пользователях, события в приложении и прочее.
  • Authentication — пользователи могут привязать свои учетные записи к приложению, а к ним мы можем привязать любые данные. Из коробки поддерживаются следующие провайдеры авторизации: Google, Facebook, Twitter, GitHub, анонимный вход и имейл-пароль для своей регистрации. Не хватает только VK-авторизации.

Просто включи свой провайдер

  • Realtime Database — самая настоящая база данных, работает с живыми изменениями в реальном времени.
  • Storage — хранилище для файлов пользователей, можно легко сделать персональное хранилище, а можно и делиться файлами.
  • Hosting — тут просто моментальное развертывание веб-приложений и мобильных приложений с помощью безопасной глобальной сети доставки контента.
  • Test Lab for Android — тестируй приложения Android на самых разных устройствах.
  • App Indexing — свяжи информацию с веб-сайта с внутренними страницами приложения, также есть возможность индексировать данные приложения и отображать их в результатах поиска на устройстве.
  • Crash Reporting — сбор информации о сбоях в приложении (на ранних версиях и сам был источником крашей, но вроде починили).
  • Notifications — уведомления, замена старым Google Cloud Messaging.
  • Remote Config — способ менять поведение приложения прямо со своего сервера, изменяя нужные параметры.
  • Dynamic Links — полезный способ прокинуть контекст в приложение (например, пользователь читал про аспирин на твоем сайте, перешел в маркет, установил приложение, и ему открылась страница с аспирином).
  • AdMob — рекламный сервис с множеством форматов, по праву занимает лидирующие позиции в мобильной рекламе. У этой сети рекламы всегда много, и она модерируется.

А за что попросят деньги?

Деньги с нас справедливо попросят, если наш бизнес действительно разрастется. Когда он упрется в бесплатные лимиты, платить нам уже будет с чего.

Бесплатно нам доступно:

  • Realtime Database:
    • 100 единовременных подключений
    • 1 Гбайт хранилища
    • 10 Гбайт в месяц трафика
  • Storage:
    • 5 Гбайт хранилища
    • 1 Гбайт в день трафика
    • 20 000 операций загрузок в день
    • 50 000 операций скачивания в день
  • Hosting:
    • 1 Гбайт хранилища
    • 10 Гбайт в месяц трафика
    • Custom domain hosting & SSL
  • Test Lab:
    • запуск не более пятнадцати тестов в день (десять на виртуальных и пять на физических устройствах)

Более подробно читай здесь.

Наш бесплатный Spark

Аутентификация в приложении

Чтобы пользователь мог сохранять настройки приложения на сервере, нужно создать учетную запись. Firebase позволяет это делать при помощи создания собственной учетной записи, как на любом сайте с имейлом-паролем. Также можно привязаться к учетным записям Google, Facebook, Twitter, GitHub. В своих приложениях я использую аккаунты Firebase и Google.

Разрешенные способы входа

Хороший пример кода для вдохновения ты найдешь здесь. А как сделать свою регистрацию, внятно описано тут.

Для связки Google-аккаунта с приложением я делаю следующее. В методе OnCreate нужной Activity создаю объекты GoogleApiClient, FirebaseAuth и слушателя аутентификации FirebaseAuth.AuthStateListener.

Читайте также:  Андроид спидометр для машины

Чтобы запустить аутентификацию, используем простой метод:

Запущенная активити предложит нам выбрать учетную запись Google из хранящихся на устройстве. После выбора нужно обработать результат в методе onActivityResult :

После выполнения функции firebaseAuthWithGoogle сработает наш слушатель аутентификации mAuthListener.

Отключить приложение от учетной записи поможет метод revokeAccess() : в его колбэке обновляем интерфейс приложения.

Данные пользователя

Информацию о текущем привязанном пользователе мы получаем из объекта FirebaseUser:

  • getPhotoUrl() — вернет null или ссылку на аватар пользователя;
  • getEmail() — имейл-адрес;
  • getUid() — уникальный ID пользователя в системе;
  • getDisplayName() — имя пользователя;
  • getProviderData().get(1).getProviderId() — подскажет, как пользователь аутентифицировался (проверь на equals(«password») , если через email/пароль).

Имея ссылку на аватар пользователя, можно в одну строчку кода загрузить его и отобразить в приложении. Для этого есть множество сторонних библиотек: Glide, Fresco, Picasso. Но если на счету каждый килобайт, то можно использовать свой AsyncTask. Вызываем загрузку так:

DownloadImageTask в фоне загружает картинку, а в UI-потоке устанавливает ее в нужный ImageView:

Раздел «Аутентификация» в консоли разработчика

Работа с Realtime Database

Читать данные из Realtime Database можно и не представившись, для описания уровней доступа к информации используются правила. Описываются они в древовидной форме, можно задать отдельные правила на каждую ветвь.

Древовидная структура данных
Пример правил из моего проекта

В моем проекте настройки пользователей хранятся в ветке history. Пользователь может читать только свою ветвь и только если он представился. Для проверки работы правил доступа есть симулятор.

Проверяем правила доступа прямо в консоли

В том же разделе можно посмотреть статистику по нагрузке, в моем случае с 2000 идентифицировавшихся пользователей пиковая нагрузка была восемь подключений (до ста еще расти и расти).

В бесплатный тариф укладываемся с запасом

Резервные копии на текущем тарифе недоступны, но если бизнес разрастется, то обязательно купим и настроим.

Пишем и читаем данные с Android

Нужно отметить, что все будет работать и без доступа к интернету, а после подключения устройства к Сети все изменения уйдут на сервер Firebase. Когда ты прочитаешь страницу документации, с непривычки может возникнуть ряд вопросов. На практике их будет еще больше.

Начнем с записи. Нам надо получить ссылку на объект DatabaseReference и у него добраться до нужной ветки, в которую будем записывать переменную. Доступные нам типы переменных:

Вот как просто объект User записывается в ветку users:

Получить уникальный userId пользователя после аутентификации очень просто: user.getUid() . Чтобы обновить данные, нужно просто вызвать setValue() с новыми данными. Уникальный ключ для каждого объекта позволяют получить методы push() и getKey() . В следующем примере я запрашиваю ключ для еще не добавленной записи, а потом создаю ветку с этим ключом и в нее сохраняю объект:

Для чтения данных используются слушатели ValueEventListener, их нужно устанавливать на интересующие нас ветки методом addValueEventListener . Событие будет происходить каждый раз при обновлении данных на сервере, при первом подключении к БД, и просто так про запас еще раза два-три может произойти. Так что будь готов к этому морально и практически. Если тебе нужно прочитать данные один раз и больше не мучиться, то используй метод addListenerForSingleValueEvent .

Вот пример одноразового получения списка объектов для текущего пользователя из ветки history.

А если нам нужно постоянно отслеживать изменяющийся список, то в этом поможет слушатель ChildEventListener, который позволяет слушать не единичный элемент, а всю дочернюю ветку:

Здесь пять событий, сами собой объясняющие свою логику. Будь готов к срабатыванию их, причем многократному: на моем опыте при ручном добавлении элемента из приложения событие onChildAdded для этого элемента отрабатывало три раза.

Узнай своего пользователя при помощи Analytics

Старый инструмент Google Analytics создавался изначально как инструмент для работы с вебом. Позже его адаптировали под нужды мобайла, но ограничение его было существенным. В новой аналитике Firebase собирается данных намного больше. Например, данные об удалении приложения, обновлении ОС на устройстве, очистка кеша приложения. Множество событий отслеживается автоматически и не требует нашего вмешательства.

Если мы хотим собрать события внутри приложения, то нам поможет класс FirebaseAnalytics. В своих проектах, чтобы иметь возможность вызывать методы аналитики в любом месте проекта, я размещаю ссылку на объект аналитики в классе Application. Инициализирую его один раз при создании приложения:

Метод select_content можно вызвать одной строчкой. Например, соберем данные по использованию пунктов меню: App.selectContent(«меню»,»окно о-программе») или App.selectContent(«меню»,»окно настройки») .

Установив отслеживание событий в приложении, мы будем знать, что пользователя интересует больше всего. Данные, отправленные методом logEvent , нужно искать в консоли проекта на вкладке «События».

События нашего проекта

Все события на рисунке собраны системой автоматически, кроме select_content (его реализация описана выше). Вот детали по этому методу (тут ясно видно, куда отправились параметры CONTENT_TYPE и ITEM_ID ):

Карточка события select_content

Полный список событий FirebaseAnalytics доступен тут.

Про подключение и вместо заключения

После настройки всех необходимых модулей Firebase в консоли необходимо получить файл конфигурации с настройками проекта google-services.json . Там же можешь добавить контрольные суммы сертификатов SHA (это можно сделать через ассистент прямо из Android Studio: Tools → Firebase). Я добавляю два сертификата: один от дебаг-ключа и один релизный. Файл google-services.json размести в папку app проекта. В gradle-файле проекта не забудь подключить нужные библиотеки, например:

И в конце допиши apply plugin: ‘com.google.gms.google-services’ , этот плагин обработает файл google-services.json .

Эта статья — только первый подход к такому тяжелому снаряду, как Firebase. Недавно этот снаряд стал еще тяжелее, а значит, нам есть что изучать и использовать.

Думаю, в будущем хакеры найдут достойное применение такой мощной и бесплатной технологии :).

Источник

Оцените статью