Пожалуйста, помогите мне!Я пытался включить некоторый код в мое приложение для чата Android после просмотра документации Virgil Security E3Kit , но безрезультатно.На самом деле, я не знаю, куда поместить эти примеры фрагментов кода.
Мое приложение выполняет настройку / вход в систему, когда пользователь проходит проверку подлинности, прежде чем он может общаться в чате.Аутентификация в Firebase выглядит следующим образом:
public void registerUser(final String email, final String password){
if(email.equals("") || password.equals("")){
Toast.makeText(getBaseContext(), "Please enter email and/or password",
Toast.LENGTH_LONG).show();
}else{
//auth is already initialized somewhere
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
FirebaseUser user = auth.getCurrentUser();
Intent intent = new Intent(SetupActivity.this,
MoreActivity.class);
intent.putExtra("email", email);
intent.putExtra("userID", user.getUid());
startActivity(intent);
}else{
Toast.makeText(SetupActivity.this, "Error logging in, try again", Toast.LENGTH_LONG).show();
}
}
});
}
}
Моя проблема в том, что я не знаю, где / как добавить часть, которая касается регистрации пользователей из документов Virgil, к вышеуказанному методу.
После аутентификации пользователя они могут легко общаться со своими контактами.Опять же, здесь есть проблема, поскольку я понятия не имею, где следует размещать инициализацию и шифрование чатов - в методах onCreate, onStart etc
или где-то еще.
Это метод onCreate
из ChatActivity, который вставляет чаты, введенные пользователями, в базу данных Firebase:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
Toolbar toolbar = (Toolbar) findViewById(R.id.chatToolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp));
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//What to do on back clicked
onSupportNavigateUp();
}
});
//Get receiver name from Intent extras
Intent intent = getIntent();
receiverName = intent.getStringExtra("receiverName");
toolbar.setTitle(receiverName);
database = FirebaseDatabase.getInstance();
reference = database.getReference("chats");
toolbar.setSubtitle(receiverPhone);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(true);
//Firebase instance and user details
auth = FirebaseAuth.getInstance();
user = auth.getCurrentUser();
phone = user.getPhoneNumber();
userName = user.getDisplayName();
userId = user.getUid();
userPhotoUrl = user.getPhotoUrl();
//Get widgets
newChat = (EditText) findViewById(R.id.chatMessage);
receiverMsg = (TextView) findViewById(R.id.receiverMessage);
myMsg = (TextView) findViewById(R.id.myMessage);
dateAdded = (TextView) findViewById(R.id.dateAdded);
receivedDate = (TextView) findViewById(R.id.receivedDate);
myPicText = (ImageView) findViewById(R.id.myPicture);
receiverPicText = (ImageView) findViewById(R.id.receiverPicture);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String message = newChat.getText().toString();
Chat chat = new Chat(userId, message, receiverID, "");
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mma");
String date = dateFormat.format(Calendar.getInstance(
TimeZone.getDefault()).getTime());
chat.setTime(date);
DatabaseReference ref = reference.push();
ref.setValue(chat);
newChat.getText().clear();
}
});
}
Моя проблема заключается в части шифрования как Firebaseпроверки подлинности и реализации чатов уже работают отлично.Спасибо за вашу помощь.