murakumo_idが被らない用ロジック実装版 #23
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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));
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user