서비스 예약 화면이 있습니다.데이터 복구 Firestore Collection
그러나 문제가있는 것입니다 :
나는 사용자가 예약하려는 날짜와 시간을 사용할 수 또는 예약 된 경우 확인 필요.
Structure DB:
Companies
-Company ID (Document)
--name
--phone
---Schedules (Collection)
------Event1
--------Hour: 08:30
--------Date: 01/01/2018
------Event2
--------Hour: 09:00
--------Date: 05/01/2018
------Event3
--------Hour: 10:30
--------Date: 01/002/2018
는이 코드로 일정 데이터에 액세스 :
String dateExample = "01/01/2018"
String hourExample = "08:30"
FirebaseFirestore mDB = FirebaseFirestore.getInstance();
CollectionReference mDBCompaniesSchedules = (CollectionReference) mDB.collection("Companies").document(mId_Company).collection("Schedules")
.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot documentSnapshots) {
for (Schedules document : documentSnapshots.toObjects(Schedules.class)) {
String dtSchedules = document.getSchedules_date();
String hourSchedules = document.getSchedules_hour();
if (dtSchedules.equals(dateExample) && hourSchedules.equals(hourExample)){
//Execute a "Toast" and closes the operation
} else {
//Call up the scheduling function.
startScheduling();
}
}
}
})
프로세스 :
가이 코드를 실행하고 해당 모음에있는 모든 문서를 이동해야합니다. 스케줄의 날짜와 시간이 이미 있는지 확인하고 분석해야합니다.
인 경우 : 토스트하고 차단하십시오.
이없는 경우 : 일정 레코드 ("startScheduling()")에 특정 기능을 실행합니다.
문제 :
데이터 (그것은 단지 한 번있을 것입니다) 존재
다음이 작동합니다.데이터가 없으면 ELSE 루프에 속합니다. 그리고 같은 함수 "startScheduling();"을 여러 번 실행합니다.
나는이 컬렉션을 통해 갈 수있는 방법이 필요하고 내가 어떤 결과를 찾을 수없는 경우, 함수는 "startScheduling()는 한 번만 실행. 어떻게 for loop
작품
당신은 내게는 도움이 있을까요? @AlexMamo – TiagoIB
나는 2 가지 해결책을 주었다. 어느 것을 구현할 수 없습니까? –
오늘의 방식. 최고는 무엇입니까[email protected] – TiagoIB