提问人:Aakash Shrestha 提问时间:4/19/2023 最后编辑:Aakash Shrestha 更新时间:4/19/2023 访问量:55
我们可以在 flutter 项目中从 iOS Share Extension 访问 firebase 刷新令牌吗
Can we access firebase refresh token from iOS Share Extension in a flutter project
问:
我们在做什么
- 我们正在从 Swift 共享扩展访问端点,我们的主要应用程序在 Flutter 中。我们只是想完成 swift native 的共享建议功能。
- 正如你所看到的,我们已经从 flutter 调用了 Swift 方法,并将 token 和 uuid 等数据作为 flutter 的参数传递。
- 我们在主应用程序中使用 firebase 令牌,对于刷新令牌,我们以应用程序中的 google 用户身份 signInSilently。
主要问题
- 由于我们从主 flutter 应用程序获取令牌,但在 1 小时后,firebase 令牌将过期,共享扩展也将不起作用,因为我们无法从共享扩展本身获取另一个令牌,也无法点击刷新令牌。
- 从共享扩展功能中,我们甚至无法点击该signInSilently,因此我们遇到了麻烦。
- 有没有办法让我们再次访问令牌或刷新令牌并使共享扩展在 1 小时后也能顺利运行。
func shareTextAndFileDataToPerr(){
let sharedDefault = UserDefaults(suiteName: "group.com.perrs.app")!
let token = sharedDefault.object(forKey: "token")
let uuid1 = sharedDefault.object(forKey: "uuid1")
let uuid2 = sharedDefault.object(forKey: "uuid2")
let sharedBy = sharedDefault.object(forKey: "sharedBy")
var documentList:Array<Dictionary<String,Any>> = []
if(isText) {
documentList.append(["attribute": "text", "key": "","document": textData,"size": 0])
}
else {
for i in 0...fileSize.count-1 {
documentList.append(["attribute": "\(fileExtension[i])","key": key[i],"document": fileNameWithExtension[i],"size":fileSize[i]])
}
}
let data: [String: Any] = ["documents": documentList, "shared_by": sharedBy!, "shared_to": uuid1!]
// Create a URLRequest with the URL of the server endpoint
var request = URLRequest(url: URL(string: "https://perr.myjobladder.com/data/")!)
request.httpMethod = "POST"
request.allHTTPHeaderFields = [
"Content-Type": "application/json",
"Authorization":"Bearer \(token!)"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: data, options: .prettyPrinted)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard data != nil else {
print("data is nil")
return
}
// Handle the response from the server here
let jsonResponse = try? JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? [String: Any]
print(jsonResponse as Any);
// Remove Loader at last
self.stopLoader()
}
task.resume()
}
在这个项目中提供任何形式的帮助将不胜感激和感激。
答: 暂无答案
评论