es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de sesión inválida al intentar recuperar datos usando MongoDB Realm.

Obtuve este error cuando intenté imprimir una colección de la base de datos de MongoDB Realm:

INVALID_SESSION(realm::app::ServiceError:2): sesión inválida: token de acceso caducado

Aquí está mi código:

Realm.init(this);

app = new App(new AppConfiguration.Builder(Appid).build());

Credentials credentials = Credentials.emailPassword("XXXXX@gmail.com","XXXXX");
app.loginAsync(Credentials.anonymous(), new App.Callback<user>() {
    @Override
    public void onResult(App.Result<user> result) {
        if(result.isSuccess()) {
            Log.v("User", "Inicio de sesión exitoso");
        } else {
            Log.v("User", "Fallo al iniciar sesión");
        }
    }
});

User user = app.currentUser();
mongoClient = user.getMongoClient("mongodb-atlas");
mongoDatabase = mongoClient.getDatabase("doctordata");
MongoCollection<document> mongoCollection = mongoDatabase.getCollection("data");
Document queryFilter = new Document().append("userid", user.getId());
RealmResultTask<><document>> doc = mongoCollection.find(queryFilter).iterator();
final String[] da = new String[1];
doc.getAsync(task -> {
    if(task.isSuccess()){
        MongoCursor<document> results = task.get();
        while (results.hasNext()) {
            Log.v("User", results.next().toJson());
        }
    } else{
        Log.v("User", task.getError().toString());
    }
});
}catch(Exception e){
    e.printStackTrace();
}

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “INVALID_SESSION(realm::app::ServiceError:2): invalid session: access token expired” indica que el token de acceso utilizado para autenticar al usuario ha expirado. Esto puede suceder si el token no se actualiza a tiempo o si el usuario ha revocado manualmente el token.

    Para resolver este problema, es necesario actualizar el token de acceso o pedir al usuario que inicie sesión nuevamente para obtener el token actualizado. Puede actualizar el token de acceso llamando al método app.currentUser().refreshCustomDataAsync(). Una vez que el token se haya actualizado, se puede utilizar para acceder a la base de datos de MongoDB Realm como de costumbre.

Comments are closed.