Так что если кто-то обновляет свое местоположение каждые пять минут, то вам действительно не нужно запускать CounterDownTimer
на вашей стороне, чтобы отслеживать местоположение каждые пять минут. Поэтому я думаю, вам просто нужно добавить слушателя к этому узлу в Firebase, который вы хотите отслеживать.
Итак, это простая реализация для вас. Скопировано из Firebase Tutorial
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts");
// Attach an listener to read the data at our posts reference
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
System.out.println(snapshot.getValue());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
Я копирую цитаты оттуда тоже. Чтобы вы знали, что это служит вашей цели.
Этот метод будет вызываться в любое время новые данные добавляются в наш Firebase ссылки, и мы не должны писать дополнительный код, чтобы сделать это случиться.
Таким образом, каждый раз, когда человек, которого вы хотите отслеживать, обновляет свое местоположение, вы получите обратный вызов в указанном выше методе и предпримите необходимые действия. Вам действительно не нужно внедрять механизм опроса для отслеживания. Так работает Firebase.
да, ответ работает отлично. но вместо добавления нам нужно только обновить данные. Есть ли способ для этого? – tin
Этот метод обратного вызова будет вызван и в случае обновления. Однако имя запутывает. –
Если вы не возражаете, я приведу пример. Я попытался изменить/обновить широту и долготу одного конкретного ребенка на «Firebase» и при проверке работающего приложения вместо удаления старого маркера и отображения текущего маркера. оба они будут отображаться. но если я собираюсь закрыть приложение и снова открыть его, маркер отобразит курсорный маркер :) Надеюсь, вы поймете heheh – tin