Как удалить не свои маркера из firebase?
В базу данных firebase приходят маркера от зарегистрированных пользователей и через определенное время я их удаляю:
DatabaseReference markerRef = FirebaseDatabase.getInstance().getReference().child("Markers").child("Markers");
markerRef.child(firebaseAuth.getUid()).orderByChild("timeStamp").endAt(cutoff).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot data : dataSnapshot.getChildren()) {
data.getRef().removeValue();
}}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
И они удаляются когда аккаунт в сети, а когда пользователь удаляет приложение или выходит из аккаунта, тогда маркера остаются в базе, как это исправить???
Ответы (1 шт):
Автор решения: Maks
→ Ссылка
Можно например добавить переменную lastseen которая будет содержать дату последнего входа. Потом надо проверять все аккаунты на эту переменную и удалять аккаунты которые не соответствуют требованиям.
Погуглите AdminSDK и Firebase CloudFunctions
Код для удаления аккаунта по uid с помощью AdminSDK:
admin.auth().deleteUser(uid)
.then(function() {
console.log("Successfully deleted user");
})
.catch(function(error) {
console.log("Error deleting user:", error);
});