我嘗試實作 twitter 身份驗證并做到了 1. 在教程之后和 2 在檔案之后......教程和檔案都在代碼中使用了 bang-operator (!) 并且在這兩種情況下 bang-operator 都導致了錯誤“對空值使用空檢查運算子” - 見下圖

我確保將方案添加到 androidmanifest.xml 檔案并在 twitter 應用程式設定中添加回呼 URL - 我還確保 API 密鑰匹配并且我無法找到繞過 bang 運算子的教程。 .. 我嘗試使用 if 子句來確保 null 安全性,但我仍然不得不使用 bang 運算子,最終它并沒有改變任何東西。我的函式的代碼如下
void login() async {
final twitterLogin = TwitterLogin(
apiKey: 't4jz7QiK0tkRQNybk2MKlOa3I',
apiSecretKey: 'KCwmlETZeLyKWmGlyZdQUXArPfdDj8uEIJqrdCJxZ7XRdpT8Lu',
redirectURI: 'flutter-twitter-login://');
await twitterLogin.login().then((value) async {
final twitterAuthCredentials = TwitterAuthProvider.credential(
accessToken: value.authToken!, secret: value.authTokenSecret!);
await FirebaseAuth.instance.signInWithCredential(twitterAuthCredentials);
});
}
提前感謝您的幫助:)
這是我使用您的更改運行它時得到的輸出:
I/OpenGLRenderer(30256): Davey! duration=41126ms; Flags=1, FrameTimelineVsyncId=13810903, IntendedVsync=184078927234535, Vsync=184078927234535, InputEventId=0, HandleInputStart=184078927898552, AnimationStart=184078927900531, PerformTraversalsStart=184078927901313, DrawStart=184078928491104, FrameDeadline=184078969956757, FrameInterval=184078927890948, FrameStartTime=11111111, SyncQueued=184078929216469, SyncStart=184078929288605, IssueDrawCommandsStart=184078929574907, SwapBuffers=184078941790637, FrameCompleted=184120054049576, DequeueBufferDuration=3825678, QueueBufferDuration=558334, GpuCompleted=184120054049576, SwapBuffersCompleted=184078942707877, DisplayPresentTime=-6758907574315243998,
編輯 2 我現在得到一個 HttpException: Failed Forbidden 錯誤...我以前有過,但遺憾的是我無法找到解決方案,因為我不知道它來自哪里 - 請參見下面的螢屏截圖

uj5u.com熱心網友回復:
你可以這樣試試嗎?
void login() async {
final twitterLogin = TwitterLogin(
apiKey: 't4jz7QiK0tkRQNybk2MKlOa3I',
apiSecretKey: 'KCwmlETZeLyKWmGlyZdQUXArPfdDj8uEIJqrdCJxZ7XRdpT8Lu',
redirectURI: 'flutter-twitter-login://');
await twitterLogin.login().then((value) async {
final authToken = value.authToken;
final authTokenSecret = value.authTokenSecret;
if (authToken != null && authTokenSecret != null){
final twitterAuthCredentials = TwitterAuthProvider.credential(accessToken: authToken, secret: authTokenSecret);
await FirebaseAuth.instance.signInWithCredential(twitterAuthCredentials);
}
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/426600.html
