检查Firebase存储中是否存在某个名称的文件夹

问题描述 投票:0回答:1

在Firebase存储中,我有一个名为uploads/的文件夹。在该文件夹中,我有多个以注册用户的userIds命名的文件夹。

这就是我想要做的。当用户输入“ProfileActivity”时,如果在uploads /文件夹下有该用户的userId后面的任何文件夹,代码将在Firebase数据库中查找。然后,如果文件夹存在与否,则相应地运行代码。

这是我到目前为止所做的,但这里addValueEventListener没有解决。我是以正确的方式做到的吗?我在这里缺少什么?

public class ProfileActivity extends AppCompatActivity {

    private FirebaseAuth mAuth;
    private StorageReference mStorageRef;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);

        mAuth = FirebaseAuth.getInstance();
        mStorageRef = FirebaseStorage.getInstance().getReference("uploads");
    }


    @Override
    protected void onStart() {
        super.onStart();
        FirebaseUser user = mAuth.getCurrentUser();
        String userID = user.getUid();
        if (user.isEmailVerified()) {
            StorageReference userFolder = mStorageRef.child(userID);
            userFolder.addValueEventListener(new ValueEventListener() {
                @Override
                void onDataChange(DataSnapshot snapshot) {
                    if (snapshot.exists()) {
                        // run some code
                    } else {
                        //Code
                    }
                }
            });

        }
    }
}
android firebase firebase-storage
1个回答
0
投票

Fire Storage for Firebase没有像Realtime Database这样的事件列表器。您正在尝试执行不受支持的操作(这就是您遇到编译器错误的原因)。请参阅StorageReference的API文档,了解您可以对该对象执行的操作。

最重要的是,无法检查云存储中是否存在“文件夹”。云存储实际上没有任何文件夹。它只包含路径组件看起来像文件夹的文件。

如果您想知道文件是否存在(而不是“文件夹”),那么您可以在引用该文件的StorageReference上使用getMetadata方法。

© www.soinside.com 2019 - 2024. All rights reserved.