8. Configuração Inicial
Em <project>/build.gradle, adicionar:
buildscript {
dependencies {
classpath 'com.google.gms:google-services:3.1.0’
}
}
Em <project>/<app-module>/build.gradle, adicionar, no final do arquivo:
apply plugin: ‘com.google.gms.google-services’
Em Application.java:
@Override
public void onCreate() {
super.onCreate();
FirebaseApp.initializeApp(this);
}
14. Armazenamento
• Criado para armazenar arquivos gerado pelos usuários
• Upload e download seguros
compile 'com.google.firebase:firebase-storage:10.2.1'
15. Armazenamento
RegisterUserActivity.java
FirebaseStorage storage = FirebaseStorage. getInstance();
StorageReference imagesRef =
storage.getReference().child( "images");
UploadTask uploadTask =
imagesRef.child(fUser.getUid()).putFile( imgUri);
uploadTask.addOnCompleteListener( new
OnCompleteListener<TaskSnapshot>(){
@Override
public void onComplete(@NonNull Task<TaskSnapshot> task){
if (task.isSuccessful()) {
User user = new User(fUser.getUid(), name, email,
task.getResult().getDownloadUrl().toString(), interests);
// Register user
}
}
});
16. Banco de dados
• Banco de dados em tempo real disponível e
sincronizado para todos os usuários
• NoSQL, Não relacional, Json
• Características:
○ Tempo real
○ Off-line
○ Acessível em dispositivos clientes
compile 'com.google.firebase:firebase-database:10.2.1'
17. Banco de dados - Salvar
RegisterUserActivity.java
FirebaseDatabase database = FirebaseDatabase. getInstance();
DatabaseReference userRef = database.getReference( "users");
userRef.child(user.getUid()).setValue(user.toMap());
DatabaseReference libsRef = database.getReference( "libs");
Library library = new Library(name, url, date, sdk, license, description);
libsRef.push().setValue(library)
.addOnCompleteListener( new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
finish();
}
}
});
AddLibActivity.java
18. Banco de dados - Recuperar
CardsFragment.java
libsRef.addValueEventListener( new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
GenericTypeIndicator<HashMap<String, Library>> t =
new GenericTypeIndicator<HashMap<String, Library>>() {};
libraries = dataSnapshot.getValue(t);
adapter.setData(libraries);
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Handle Error
}
});
FirebaseDatabase database = FirebaseDatabase. getInstance();
DatabaseReference libsRef = database.getReference( "libs");
19. Banco de dados - Alterar
CardsFragment.java
@Override
public void cardSwipedLeft( int position) {
libsRef.child(adapter.getItem(position).getUid())
.child("users")
.child(user.getUid())
.setValue(false);
}
@Override
public void cardSwipedRight( int position) {
libsRef.child(adapter.getItem(position).getUid())
.child("users")
.child(user.getUid())
.setValue(true);
}
FirebaseDatabase database = FirebaseDatabase. getInstance();
DatabaseReference libsRef = database.getReference( "libs");
20. Analytics
• Medição de aplicativo
• Informações sobre o uso do aplicativo e o envolvimento do usuário
• Recursos:
○ Relatórios ilimitados
○ Segmentação do público-alvo
compile 'com.google.firebase:firebase-core:10.2.1'
22. Cloud Messaging
• Enviar mensagens de notificação para promover novas
interações e a retenção de usuários
• É possível enviar dados para segmentos de usuários e
separá-los por plataforma, por canal ou enviar individualmente
• Envio de mensagens pelo console ou por servidor próprio
compile 'com.google.firebase:firebase-messaging:10.2.1'
23. Cloud Messaging
CustomFirebaseInstanceIdService.java
public class CustomFirebaseInstanceIdService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId. getInstance().getToken();
// Send token to custom server
}
}
25. Crash Reporting (Beta)
• Relatórios de erro detalhados no aplicativo
• Agrupados por pilhas semelhantes e agrupados de acordo com
a gravidade sobre o impacto para o usuário
• É possível registrar eventos personalizados para reconhecer as
etapas que podem levar ao erro
compile 'com.google.firebase:firebase-crash:10.2.1'
28. Test Lab
• Testes do aplicativo em dispositivos hospedados nos
datacenters do Google
• Mostra capturas de tela e vídeo de utilização
• É possível integrar com sistemas de integração contínua