0

firebaseユーザーログインでSMSテンプレートを送信するアプリがあります。 私はfirbaseデータベース上の各ユーザーのsmsログを保存したいので、各ユーザーが送信したメッセージを見ることができます。私はおそらくそれ作る方法は考えている。..アンドロイドfirebaseデータベースは、現在のユーザーのデータを保存します

私のコード

LoginActivity.java

public class LoginActivity extends AppCompatActivity { 
private ProgressBar spinner; 

EditText EMAIL, PASSWORD; 
Button SIGNIN; 
private FirebaseAuth mAuth; 
private FirebaseAuth.AuthStateListener mAuthListener; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 

    mAuth = FirebaseAuth.getInstance(); 

    EMAIL = (EditText) findViewById(R.id.email); 
    PASSWORD = (EditText) findViewById(R.id.password); 
    SIGNIN = (Button) findViewById(R.id.login); 
    spinner = (ProgressBar) findViewById(R.id.progressBar1); 
    spinner.setVisibility(View.GONE); 


    SIGNIN.setOnClickListener(new View.OnClickListener() { 


      @Override 
      public void onClick(View view) { 
       if ((TextUtils.isEmpty(EMAIL.getText().toString())) && (TextUtils.isEmpty(PASSWORD.getText().toString()))) { 
        Toast.makeText(getApplicationContext(), "make sure that you enter full ogin info ", Toast.LENGTH_SHORT).show(); 
       }else if (!isEmailValid(EMAIL.getText().toString())){ 
        Toast.makeText(getApplicationContext(), "enter a valid mail", Toast.LENGTH_SHORT).show(); 
       } else { 
        SignIn(EMAIL.getText().toString(), PASSWORD.getText().toString()); 
       } 

      } 
     }); 
    SIGNIN.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      String pass = PASSWORD.getText().toString(); 

      if(TextUtils.isEmpty(pass)) { 
       PASSWORD.setError("kindly enter password "); 
       return; 
      } 





      if ((TextUtils.isEmpty(EMAIL.getText().toString())) && (TextUtils.isEmpty(PASSWORD.getText().toString()))) { 
       Toast.makeText(getApplicationContext(), "wrong info", Toast.LENGTH_SHORT).show(); 
       spinner.setVisibility(View.GONE); 

      } else { 
       spinner.setVisibility(View.VISIBLE); 
       SignIn(EMAIL.getText().toString(), PASSWORD.getText().toString()); 
      } 

     } 
    }); 


    mAuthListener = new FirebaseAuth.AuthStateListener() { 
     @Override 
     public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
      FirebaseUser user = firebaseAuth.getCurrentUser(); 
      if (user != null) { 
       finish(); 
       startActivity(new Intent(getApplicationContext(), MainActivity.class)); 
       finish(); 
      } 
     } 
    }; 
    mAuth.addAuthStateListener(mAuthListener); 


} 


private void SignIn(String email, String password) { 
    mAuth.signInWithEmailAndPassword(email, password) 
      .addOnCompleteListener(new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        if (task.isSuccessful()) { 
         finish(); 
         Toast.makeText(getApplicationContext(), "login done", 
           Toast.LENGTH_SHORT).show(); 
         startActivity(new Intent(getApplicationContext(), MainActivity.class)); 
         finish(); 
        } else { 
         Toast.makeText(getApplicationContext(), "Error username", 
           Toast.LENGTH_SHORT).show(); 
         spinner.setVisibility(View.GONE); 

        } 

       } 
      }); 
} 

public static boolean isEmailValid(String email) { 
    boolean isValid = false; 

    String expression = "^[\\w\\.-][email protected]([\\w\\-]+\\.)+[A-Z]{2,4}$"; 
    CharSequence inputStr = email; 

    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE); 
    Matcher matcher = pattern.matcher(inputStr); 
    if (matcher.matches()) { 
     isValid = true; 
    } 
    return isValid; 
} 
} 

sms.java

public class Harsh extends AppCompatActivity { 
RadioButton lo, hi, mid; 
String sense; 
Button submit; 



@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.harsh_layout); 
    lo = (RadioButton) findViewById(R.id.lo_btn); 
    hi = (RadioButton) findViewById(R.id.hi_btn); 
    mid = (RadioButton) findViewById(R.id.mid_btn); 
    submit = (Button) findViewById(R.id.submitButton); 

    SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE); 
    final String num = prefs.getString("nameKey", "0"); 

    submit.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (lo.isChecked()) { 
       sendSMS(num, " message one"); 

      } else if (hi.isChecked()) { 
       sendSMS(num, " message 2"); 
      // for example save this message for current logged user 
      } else if (mid.isChecked()) { 


       sendSMS(num, " message 3"); 
      } 
      Toast.makeText(getApplicationContext(), "Command Sent", Toast.LENGTH_LONG).show(); // print the value of selected super star 
     } 
    }); 



} 
public void sendSMS(String phoneNo, String msg) { 
    try { 
     SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage(phoneNo, null, msg, null, null); 
     Toast.makeText(getApplicationContext(), "Command Sent", 
       Toast.LENGTH_LONG).show(); 
    } catch (Exception ex) { 
     Toast.makeText(getApplicationContext(),ex.getMessage().toString(), 
       Toast.LENGTH_LONG).show(); 
     ex.printStackTrace(); 
    } 
} 
} 
+0

なしまだFirebaseデータベースと相互作用しないことを追加します。 [Android用Firebaseのドキュメント](https://firebase.google.com/docs/database/android/start/)を読むことをお勧めします。あなたがより指向性があるなら、[Android用Firebase codelab](https://codelabs.developers.google.com/codelabs/firebase-android/)をお勧めします。これらの両方で、少なくとも、この機能を使い始めることができます。あなたが立ち往生した場合、あなたが立ち往生した場所を再現する[**最小**コード](http://stackoverflow.com/help/mcve)を投稿すれば、よりうまく手助けすることができます。 –

答えて

1

研究の多くは、私がそのセットを発見した後とクラスを取得し、私のコードを以下のように変更します

public class Post { 

private String message; 
private String number; 
private String user; 
private String date; 

public String getMessage() { 
    return message; 
} 

public void setMessage(String message) { 
    this.message = message; 
} 

public String getNumber() { 
    return number; 
} 

public void setNumber(String number) { 
    this.number = number; 
} 

public String getUser() { 
    return user; 
} 

public void setUser(String user) { 
    this.user = user; 
} 
public String getDate() { 
    return date; 
} 

public void setDate(String date) { 
    this.date = date; 
} 
} 
その後、私は、データベースをfirbaseするデータをポストする必要が活動中

私はあなたのコードの簡単なコード

FirebaseDatabase database = FirebaseDatabase.getInstance(); 

       DatabaseReference posts = database.getReference("Messages:"); 
    //this code for keep posts even app offline until the app online again 
       posts.keepSynced(true); 

       Post post = new Post(); 
       post.setMessage("Messsage"); 
       post.setUser(name); 
       post.setNumber(num); 
       post.setDate(s); 

       posts.push().setValue(post); 
関連する問題