Android - 在特定用户下将图像上传到 Firebase

1 android firebase firebase-authentication firebase-realtime-database android-sharedpreferences

我对 Android 相当陌生,想制作一个允许用户使用 Firebase 存储上传图片的应用程序。在他们登录后,我将他们的 Uid 发送到 SharedPreferences,以便稍后在我的 imageupload 活动中检索它。我需要它,以便当图像被发送到 Firebase 时,它​​会被放在他们的用户 ID 的文件夹下。

这是我当前检索 Uid 的登录活动:

FirebaseAuth auth = FirebaseAuth.getInstance();
        FirebaseAuth.AuthStateListener authListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
                if (firebaseUser != null) {
                    String userId = firebaseUser.getUid();
                    sharedPref = getPreferences(MODE_PRIVATE);
                    SharedPreferences.Editor editor = sharedPref.edit();
                    editor.putString("firebasekey", userId);
                    editor.commit();
Run Code Online (Sandbox Code Playgroud)

这是我的图片上传活动:

sharedPref = getPreferences(MODE_PRIVATE);
    String UserId = sharedPref.getString("firebasekey", "1");
    StorageReference storageRef= FirebaseStorage.getInstance().getReference();
    StorageReference mountainsRef = storageRef.child("uploads/"+UserId+System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)

帮助将不胜感激。

Flo*_*lin 5

干得好

String userUid = FirebaseAuth.getInstance().getCurrentUser().getUid();
UploadTask uploadTask = FirebaseStorage.getInstance().child("newFolder").getReference(userUid).putBytes(yourPhotoToByteArray);
uploadTask
            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {

                }
            });
Run Code Online (Sandbox Code Playgroud)

并检索图像

StorageReference storageReference = FirebaseStorage.getInstance().getReference("newFolder/" + userUid);
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关 FirebaseCloudStorage 的更多信息。这里如何上传,这里如何下载它们。