【发布时间】:2022-02-18 00:33:59
【问题描述】:
我需要从 Firebase 存储和 Firestore 数据库中获取数据。我从 Firestore 数据库(Firebase 存储中的图像和歌曲链接)获取文本数据,但我无法检索歌曲并将其流式传输到我的应用程序中。我收到一个错误表单 logcat:
E/StorageUtil:获取令牌时出错 java.util.concurrent.ExecutionException:com.google.firebase.internal.api.FirebaseNoSignedInUserException:请先登录,然后再尝试获取令牌。
但我没有在我的应用中登录用户。
logcat 也写错误:
E/StorageException: { "error": { "code": 404, "message": "Not Found." }}
java.io.IOException: { "error": { "code": 404, "message": "Not Found." }}
日志猫:
2022-02-17 06:03:27.264 14195-14268/com.example.clearmind1 E/StorageUtil: error getting token java.util.concurrent.ExecutionException: com.google.firebase.internal.api.FirebaseNoSignedInUserException: Please sign in before trying to get a token.
2022-02-17 06:03:27.265 14195-14268/com.example.clearmind1 W/NetworkRequest: no auth token for request
2022-02-17 06:03:27.265 14195-14268/com.example.clearmind1 W/NetworkRequest: No App Check token for request.
2022-02-17 06:03:27.272 14195-14270/com.example.clearmind1 E/StorageUtil: error getting token java.util.concurrent.ExecutionException: com.google.firebase.internal.api.FirebaseNoSignedInUserException: Please sign in before trying to get a token.
2022-02-17 06:03:27.273 14195-14270/com.example.clearmind1 W/NetworkRequest: no auth token for request
2022-02-17 06:03:27.273 14195-14270/com.example.clearmind1 W/NetworkRequest: No App Check token for request.
2022-02-17 06:03:27.277 14195-14276/com.example.clearmind1 E/StorageUtil: error getting token java.util.concurrent.ExecutionException: com.google.firebase.internal.api.FirebaseNoSignedInUserException: Please sign in before trying to get a token.
2022-02-17 06:03:27.277 14195-14276/com.example.clearmind1 W/NetworkRequest: no auth token for request
2022-02-17 06:03:27.277 14195-14276/com.example.clearmind1 W/NetworkRequest: No App Check token for request.
2022-02-17 06:03:27.799 14195-14270/com.example.clearmind1 E/StorageException: StorageException has occurred.
Object does not exist at location.
Code: -13010 HttpResult: 404
2022-02-17 06:03:27.799 14195-14276/com.example.clearmind1 E/StorageException: StorageException has occurred.
Object does not exist at location.
Code: -13010 HttpResult: 404
2022-02-17 06:03:27.801 14195-14276/com.example.clearmind1 E/StorageException: { "error": { "code": 404, "message": "Not Found." }}
java.io.IOException: { "error": { "code": 404, "message": "Not Found." }}
at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:445)
at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:462)
at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:453)
at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:289)
at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:76)
at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:68)
at com.google.firebase.storage.GetDownloadUrlTask.run(GetDownloadUrlTask.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
2022-02-17 06:03:27.801 14195-14264/com.example.clearmind1 E/StorageException: StorageException has occurred.
Object does not exist at location.
Code: -13010 HttpResult: 404
2022-02-17 06:03:27.802 14195-14264/com.example.clearmind1 E/StorageException: { "error": { "code": 404, "message": "Not Found." }}
java.io.IOException: { "error": { "code": 404, "message": "Not Found." }}
at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:445)
at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:462)
at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:453)
at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:289)
at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:76)
at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:68)
at com.google.firebase.storage.GetDownloadUrlTask.run(GetDownloadUrlTask.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
2022-02-17 06:03:27.809 14195-14270/com.example.clearmind1 E/StorageException: { "error": { "code": 404, "message": "Not Found." }}
java.io.IOException: { "error": { "code": 404, "message": "Not Found." }}
at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:445)
at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:462)
at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:453)
at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:289)
at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:76)
at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:68)
at com.google.firebase.storage.GetDownloadUrlTask.run(GetDownloadUrlTask.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
2022-02-17 06:03:27.955 14195-14268/com.example.clearmind1 E/StorageException: StorageException has occurred.
Object does not exist at location.
Code: -13010 HttpResult: 404
2022-02-17 06:03:27.955 14195-14268/com.example.clearmind1 E/StorageException: { "error": { "code": 404, "message": "Not Found." }}
java.io.IOException: { "error": { "code": 404, "message": "Not Found." }}
at com.google.firebase.storage.network.NetworkRequest.parseResponse(NetworkRequest.java:445)
at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(NetworkRequest.java:462)
at com.google.firebase.storage.network.NetworkRequest.processResponseStream(NetworkRequest.java:453)
at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:272)
at com.google.firebase.storage.network.NetworkRequest.performRequest(NetworkRequest.java:289)
at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:76)
at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(ExponentialBackoffSender.java:68)
at com.google.firebase.storage.GetDownloadUrlTask.run(GetDownloadUrlTask.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
这里我从服务器获取文本数据:
ArrayList childItemList = new ArrayList<>();
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection(category).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
progressDialog.dismiss();
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d(TAG, document.getId() + " => " + document.getData());
ChildItem childItem = new ChildItem();
childItem.setTrackTitle(document.getString("title"));
childItem.setAuthor(document.getString("author"));
childItem.setDuration(document.getString("duration"));
childItem.setImage(document.getString("image"));
childItem.setTrack(document.getString("track"));
childItemList.add(childItem);
}
} else {
Log.w(TAG, "Error getting documents.", task.getException());
Toast.makeText(BrowseTracksActivity.this, task.getException() + "", Toast.LENGTH_SHORT);
}
childItemList.add(getDefaultChildItem());
setAdapter();
}
});
在这里我正在尝试流式传输歌曲(我正在通过意图将歌曲的链接发送到另一个活动):
Intent intent=getIntent();
music= new MediaPlayer();
music.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
String s=intent.getStringExtra("track");
music.setDataSource(intent.getStringExtra("track"));
music.prepare();
music.start();
Toast.makeText(this, "Audio started playing..", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// this line of code is use to handle error while playing our audio file.
Toast.makeText(this, "Error found is " + e, Toast.LENGTH_SHORT).show();
}
【问题讨论】:
-
您确定您的用户已登录吗?
-
我没有在我的应用中登录用户。我不需要这样做
-
在您共享的代码中,我看不到您调用 Cloud Storage for Firebase SDK 的任何地方,因此很难说比错误消息已经做的更多:您正在尝试加载一个不存在的文件。
标签: java android firebase firebase-storage