Я использую следующее:
Класс Singleton для подключения
Мой код ниже предназначен для подключения к конечной точке GraphQL, которая является моей базой данных Neo4j .
class Network {
static let shared = Network()
private(set) lazy var apollo: ApolloClient = {
let url = URL(string: "http://localhost:7474/graphql/")!
let keychain = KeychainSwift()
let configuration = URLSessionConfiguration.ephemeral
configuration.httpAdditionalHeaders = ["Authorization": "\(String(describing: keychain.get("neo.auth")))"]
return ApolloClient(
networkTransport: HTTPNetworkTransport(url: url, session: URLSession(configuration: configuration))
)
}()
}
Когда я создаю данные в своей базе данных через мое приложение, это прекрасно работает, однако, если я затем запрашиваю базу данных, чтобы вернуть все данные, вновь созданные данные не найдены. Данные находятся в базе данных, потому что я вижу их в браузере, а также, если я перезапускаю свое приложение и затем запускаю точно такой же код, чтобы вернуть все данные; он возвращает его.
Другая вещь, которую я попытался сделать, - запустить два экземпляра моего приложения рядом в симуляторе. Оба приложения имеют одинаковые функции и могут импортировать / экспортировать данные. Когда я создаю новые данные в одном экземпляре, они успешно создаются в базе данных, однако после импорта данных в другом экземпляре приложения ничего не возвращается (оба приложения запускаются одновременно).
My Код импорта
func importData(){
let apollo = Network.shared.apollo
//Import all data from the graph database
apollo.fetch(query: GetAllQuery()) { result in
guard let data = try? result.get().data else { return }
print(data.jsonObject.values)
}
}
Единственное, о чем я могу думать, это то, что сеанс не обновляется при создании новых данных в базе данных. Причина, по которой я это чувствую, заключается в том, что, если я перезапущу приложение и запустю свою функцию импорта, она фактически вернет все новые данные. Мне нужно соединение для обновления при создании новых данных, есть ли способ обновить sh соединение при создании данных?