classIdのロジックとclassIdの呼び出しを両方同じブランチに書いちゃった☆コンフリったら分けてね

This commit is contained in:
nemukemo 2024-07-01 19:18:01 +09:00
parent 0c569b0a57
commit 8d4c4a0c4c
4 changed files with 49 additions and 30 deletions

View File

@ -5,12 +5,12 @@ import java.util.List;
public class CreateUUID {
public static int generateUUID(List<String> classIdList ){
public static int generateUUID(List<Integer> classIdList ){
while (true){
String uuid = String.valueOf((int)(Math.random() * 1000000));
int uuid = (int) (Math.random() * 100000);
boolean isDuplicate = false;
for(String classId : classIdList){
if(classId.equals(uuid)){
for(int classId : classIdList){
if(classId==uuid){
//重複があればフラグを立てループを抜ける
isDuplicate = true;
break;
@ -19,9 +19,11 @@ public class CreateUUID {
//重複がなければ生成したUUIDを返す
if (!isDuplicate) {
//firestoreに挿入処理
InsertClassIdforFirebase insertClassIdforFirebase = new InsertClassIdforFirebase();
insertClassIdforFirebase.insertClassId(uuid);
//テスト用
uuid="100";
return Integer.parseInt(uuid);
uuid=100;
return uuid;
}
}
}

View File

@ -17,14 +17,14 @@ import java.util.List;
import java.util.Map;
public class FirestoreReception_classIdDatabase {
private FirebaseFirestore db;
private List<String> classIdList= new ArrayList<>();
private List<Integer> classIdList= new ArrayList<>();
public FirestoreReception_classIdDatabase() {
db = FirebaseFirestore.getInstance();
}
public List<String> getAllDocumentsFromClassIdDatabase() {
public List<Integer> getAllDocumentsFromClassIdDatabase() {
db.collection("classId_Database")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@ -34,8 +34,7 @@ public class FirestoreReception_classIdDatabase {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d("結果", document.getId() + " => " + document.getData());
//データをListに追加
classIdList.add((String) document.get("classId"));
}
classIdList.add(((Long) document.get("classId")).intValue()); }
} else {
Log.d("結果", "Error getting documents: ", task.getException());
}
@ -45,7 +44,7 @@ public class FirestoreReception_classIdDatabase {
return classIdList;
}
public List<String> getClassIdList() {
public List<Integer> getClassIdList() {
return classIdList;
}
}

View File

@ -0,0 +1,19 @@
package com.example.oplogy;
import com.google.firebase.firestore.FirebaseFirestore;
import java.util.HashMap;
import java.util.Map;
public class InsertClassIdforFirebase {
public void insertClassId(int classId) {
FirebaseFirestore db = FirebaseFirestore.getInstance();
Map<String, Object> data = new HashMap<>();
data.put("classId", classId); // classId is inserted as a number
db.collection("classId_Database").add(data)
.addOnSuccessListener(documentReference -> System.out.println("DocumentSnapshot added with ID: " + documentReference.getId()))
.addOnFailureListener(e -> System.err.println("Error adding document: " + e));
}
}

View File

@ -48,7 +48,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
private FirestoreReception_classIdDatabase firestoreReception_classIdDatabase;
//取得するためのクラスID
private int classId=100000;
private int classId;
@Override
@ -84,6 +84,22 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
db = FirebaseFirestore.getInstance();
firestoreReception = new FirestoreReception();
//TODO:classIdの初期値を取得
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(() -> {
try{
AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "SetUpTable")
.build();
SetUpTableDao setUpTableDao = db.setUpTableDao();
classId = setUpTableDao.getClassId();
firestoreReception.getDocumentsByClassId(classId);
}catch (Exception e){
//無視して続行
e.printStackTrace();
}
});
}
@ -141,7 +157,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
//UUIDを表示するかのダイアログ
private void showUUIDYesNoDialog() {
firestoreReception_classIdDatabase = new FirestoreReception_classIdDatabase();
List<String> classIdList = firestoreReception_classIdDatabase.getAllDocumentsFromClassIdDatabase();
List<Integer> classIdList = firestoreReception_classIdDatabase.getAllDocumentsFromClassIdDatabase();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
@ -336,21 +352,4 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
alertDialog.dismiss();
}
}
@Override
protected void onResume(){
super.onResume();
//roomからclassIdを取得
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(() -> {
AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "SetUpTable")
.fallbackToDestructiveMigration()
.build();
SetUpTableDao setUpTableDao = db.setUpTableDao();
classId = setUpTableDao.getClassId();
});
if (classId != 100000 ) {
firestoreReception.getDocumentsByClassId(classId);
}
}
}