当前位置: 首页 > 知识库问答 >
问题:

从Firebase数据库中获取随机值

赵刚豪
2023-03-14
public class PostActivity extends AppCompatActivity {

    private EditText PostField;
    private Button postSubmit;
    private DatabaseReference mDatabasePosts;


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

        postSubmit = (Button)findViewById(R.id.postSubmit);
        postField = (EditText)findViewById(R.id.postField);
        mDatabasePosts = FirebaseDatabase.getInstance().getReference().child("posts");

        postSubmit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startPosting();
            }

            private void startPosting() {
                final String postVal = postField.getText().toString().trim();
                if (!TextUtils.isEmpty(postVal)) {

                    //post creation
                    DatabaseReference newPost = mDatabasePosts.push();
                    newPost.setValue(postVal);
                    Toast.makeText(PostActivity.this, "Post registered", Toast.LENGTH_SHORT).show();

                    startActivity(new Intent(PostActivity.this, HomeActivity.class));
                }
            }
        });
    }
}
DatabaseReference mPost;

mPost = FirebaseDatabase.getInstance().getReference().child("posts");

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                mPost.addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        long allNum = dataSnapshot.getChildrenCount();
                        int maxNum = (int)allNum;
                        int randomNum = new Random().nextInt(maxNum);

                        int count = 0;
                        Iterable<DataSnapshot> ds = dataSnapshot.getChildren();
                        Iterator<DataSnapshot> ids = ds.iterator();
                        String newPost = (String) ids.next().getValue();
                        while(ids.hasNext() && count < randomNum) {
                            ids.next();
                            count ++; // used as positioning.
                        }

                        Toast.makeText(HomeActivity.this, newPost,Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });
            }
        });
posts
  L random key: "text 1"
  L random key: "text 2"
  L random key: "text 3"
  L random key: "text 4"
  L random key: "text 5"
  L random key: "text 6"

有人能帮我做这个吗?

共有1个答案

於子晋
2023-03-14
    posts
      L random key: "text 1"
      L random key: "text 2"
int randomNum = new Random().nextInt(maxNum);
while(ids.hasNext() && count < randomNum) {
random.nextInt(max - min + 1) + min
 类似资料:
  • 我有一个Firebase查询: Firebase是否允许您带回随机数据。 例如,现在我得到了5个最新的用户: 我想带回20个用户,然后只显示20个随机的5个。

  • 问题内容: 我正在使用Android应用程序,需要从孩子的Firebase中获取随机对象?用Java怎么做? 问题答案: 假设我有一个有n个对象的孩子,这就是我要这样做的方式: 如果我不知道n的值如何,那么我将首先在侦听器中执行此操作以获取对象总数: 然后,我将生成一个介于0和n之间的随机整数i。如果您不知道该怎么做,请使用Google。 最后,我将从孩子那里获得第i个项目: “ MyObject

  • 问题内容: 我有一个带有这样的树的firebase数据库 等等… 在我的应用程序中,用户下载项目,而项目下载时,电视主题将从URL播放。当单个项目发生价值事件时,我可以使其正常运行。我希望它从列表中随机选择一个值。如何做到这一点? 由于我的应用程序不包含任何内容,因此编辑可以使用回收视图方法 这是我的单项代码 问题答案: 要解决此问题,请使用以下代码行: 然后使用循环使用随机数提取该值:

  • 问题内容: 我有一个生成事实的简单应用。我想合并一个生成随机事实而不是递减的函数。 我的数组看起来像这样。 问题答案: 使用随机类。该类有一个方法,(doc)和引号: 返回一个伪随机数,它从此随机数生成器的序列中提取,在0(含)和指定值(不含)之间均匀分布的int值。nextInt的一般约定是伪随机生成并返回指定范围内的一个int值。所有n个可能的int值均以(近似)相等的概率产生。 因此,您需要

  • 我想通过在Java中使用push()从列表中获得一个随机。

  • 问题内容: 我想通过使用Java中的push()从列表中获取随机数。 这是存储数据的代码: 这是我的firebase数据库中的样子: 这是我检索数据的方式: 我想在数据库中检索一个随机值。例如。获取随机值,它可以是“明天非常多风”或“今天非常多风和多雨”。 你们能为我提供一些我可以在Java中使用的信息的帮助吗,但是我仍然没有其他语言的经验。先感谢您。 解决了 问题答案: 在数据库中找出可能的值(