Я создал демонстрационное приложение, которое аутентифицирует пользователя из Azure Active Directory и может выполнять синхронизацию с простыми таблицами. Когда я подключил службу приложений на портале Azure к базе данных SQL, то при извлечении данных таблицы в приложении iOS swift выдается ошибка 401. Ниже приведен фрагмент кода.
let client = MSClient(applicationURLString: "URL String")
let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext!
self.store = MSCoreDataStore(managedObjectContext: managedObjectContext)
client.syncContext = MSSyncContext(delegate: nil, dataSource: self.store, callback: nil)
self.table = client.syncTable(withName: "table name")
self.refreshControl?.addTarget(self, action: #selector(ActivityTableViewController.onRefresh(_:)), for: UIControlEvents.valueChanged)
вызов API (вызов onRefresh):
self.table!.pull(with: self.table?.query(), queryId: "AllRecords") {
(error) -> Void in DispatchQueue.main.async {
UIApplication.shared.isNetworkActivityIndicatorVisible = false
// throws 401 error here
}
}
Теперь я обошел аутентификацию пользователя, и в службе приложений Azure простая таблица работает нормально, и я могу получить доступ к данным из мобильного приложения.
Я связал базу данных SQL со службой приложений и создал простую таблицу с тем же именем, что и в базе данных SQL. В простой таблице он создал ту же схему, что и в базе данных SQL. Теперь проблема в том, что я не могу получить данные в мобильном приложении из этой таблицы. База данных SQL содержит записи в таблице.