我是FireStore新手,我正在为一家教育机构开发一个应用程序。我有2个不同的批次,每个批次有2个不同的类别。{CBSE > xi,xii & CHSE > xi,xii}
我希望学生使用FirebaseAuth登录到我的应用程序,并且FireStore已经将这些学生数据作为
User(collection) >> users(Document)(using the userID given by FirebaseAuth) >> FullName: (Student's name)
Phone:(number)
Board:(There Batch or Board, i.e., CBSE or CHSE)
Class:(class, i.e., XI or XII)
email:(email)所以如果一个学生属于CBSE和XI,我希望他们去不同的活动,如果来自同一批次的XII,那么去不同的活动。其他批处理(CHSE)也是如此。
我已经写了一个代码,看看这个
public class test extends AppCompatActivity {
FirebaseAuth fauth;
FirebaseFirestore fstore;
String userID, mboard, mclass;
TextView Board, Class;
private Object testB, testC;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maths);
Board = findViewById(R.id.Board);
Class = findViewById(R.id.Class);
fauth = FirebaseAuth.getInstance();
fstore = FirebaseFirestore.getInstance();
userID = fauth.getCurrentUser().getUid();
final DocumentReference documentReference = fstore.collection("users").document(userID);
documentReference.addSnapshotListener(this, new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot documentSnapshot, @Nullable FirebaseFirestoreException e) {
Board.setText(documentSnapshot.getString("Board"));
Class.setText(documentSnapshot.getString("Class"));
mboard = Board.toString();
mclass = Class.toString();
testB = String.valueOf(documentSnapshot.getData().get(Board));
testC = String.valueOf(documentSnapshot.getData().get(Class));
if (testB == "CHSE") {
if (testC == "XI") {
startActivity(new Intent(new Intent(getApplicationContext(),MainActivity.class)));
}
if (testC == "XII") {
startActivity(new Intent(new Intent(getApplicationContext(),test.class)));
}
}
}
});
}
}从YouTube教程中我得到了这一点,但有两个问题:- 1.我必须在布局上使用textView。如何才能将值存储到变量中? 2. if...else不起作用。我只想让这一切发生。我该如何让学生们去参加那些受人尊敬的活动呢?
请帮帮我,提前谢谢你……
发布于 2020-05-09 02:37:21
在Java语言中,==操作符不是比较两个字符串的有效方法。您应该改用equals()方法。
if ("CHSE".equals(testB))https://stackoverflow.com/questions/61685346
复制相似问题