小编not*_*ess的帖子

在Firebase中自动增加值

如何从Android客户端自动增加存储在Firebase中的值?

目前:我宣布int id = 1.当我递增时,我看到存储的值2,3等.那没关系,但是当我重新运行项目时,id再次设置为1.

我希望它表现得像一个静态变量,所以我可以创建一个从1到无穷大而不重置的id.

更新失败

我使用以下内容将Firebase引用和字符串传递给函数incrementCounter.

if(language_chosen.equalsIgnoreCase("english"))
 {
   Firebase publRef = f.child("Language").child("English").child("Message");
   Firebase newPublRef = publRef.push();
   writeMsgActivity demo = new writeMsgActivity();
   demo.incrementCounter(newPublRef,the_msg_enter);                                 
  }
Run Code Online (Sandbox Code Playgroud)

现在我尝试public void incrementCounter(Firebase publref,String my_msg)在oncomplete方法中使用传递的引用和字符串, 但它给了我一个错误.

   public void incrementCounter(Firebase publref,String my_msg) {
    publref.runTransaction(new Transaction.Handler() {
        @Override
        public Transaction.Result doTransaction(final MutableData currentData) {
            if (currentData.getValue() == null) {
                currentData.setValue(1);
            } else {
                currentData.setValue((Long) currentData.getValue() + 1);
            }

            return Transaction.success(currentData);
        }

        public void onComplete(FirebaseError firebaseError, boolean committed, DataSnapshot currentData) {
            if …
Run Code Online (Sandbox Code Playgroud)

java android auto-increment firebase firebase-realtime-database

12
推荐指数
2
解决办法
2万
查看次数

计算所有值Firebase Java API

我正在尝试用Java计算我的firebase数据库中的所有值.但它不起作用,我已经看了一些教程,但没有找到任何Java程序员.

这是我的数据库:

Language
  German
    Message
      -Jf6ShYy7niHrqg_x4Tc: "Tomorrow is very windy"
      -Jf9v0xHAxINUUANrORU: "Today is very windy and rainy"
Run Code Online (Sandbox Code Playgroud)

这是我的代码,请注意我尝试使用count max value的行:

    Firebase f = new Firebase("https://myapp.firebaseio.com/Language/German/Message/");             
    f.addValueEventListener(new ValueEventListener() {

        public void onDataChange(DataSnapshot snapshot) {
            disp_msg = (TextView)findViewById(R.id.display_msg);
            //disp_msg.setText(snapshot.getValue().toString());
            Iterable<DataSnapshot> ds = snapshot.getChildren();
            Iterator<DataSnapshot> ids = ds.iterator();
            Map<String, Object> newPost = (Map<String, Object>) ids.next().getValue();
            String msg = newPost.get("pubMsg").toString();
            disp_msg.setText(msg.toString());

            //The line below does not work getting the maximum values
            int maxValueInMap=(Collections.max(newPost.values().toString())); 

        }
Run Code Online (Sandbox Code Playgroud)

这是我在Collections的max函数中得到的错误:

类型集合中的方法max(Collection)不适用于参数(String)

有谁知道如何用Java解决这个问题,提前谢谢.

java android count firebase

5
推荐指数
1
解决办法
1811
查看次数

检查密钥是否存在 firebase Android

我想检查 firebase 数据库中是否存在密钥。例如,我想查找关键的“upvotes”以查看它是否存在。

这是一个例子,这里不存在“upvotes”键: 在此处输入图片说明

现在我尝试检查关键的“upvotes”是否在这个位置:

        Map<String, Object> newPost = (Map<String, Object>) ids.next().getValue();
            if(newPost.get("upvotes").toString().equals("upvotes")){
                disp_rate = newPost.get("upvotes").toString();
            }
            else
            {
                disp_rate = "0";
            }
Run Code Online (Sandbox Code Playgroud)

我的尝试是错误的,所以我如何检查该位置是否存在关键的“upvotes”。

android key exists not-exists firebase

5
推荐指数
2
解决办法
1万
查看次数

Firebase检索儿童Android

我在Android上访问Firebase.我想从树中检索一个孩子.我的代码是(更新的)

         f.child("Germany").child("Username").child("Alan Turing").addChildEventListener(new ChildEventListener() {
        // Retrieve new posts as they are added to Firebase
        @Override
        public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {
            Map<String, Object> newPost = (Map<String, Object>) snapshot.getValue();
            System.out.println("Author: " + newPost.get("Message"));
            disp_msg = (TextView)findViewById(R.id.display_msg);
            disp_msg.setText(newPost.get("Message").toString());
           // System.out.println("Title: " + newPost.get("title"));
        }
Run Code Online (Sandbox Code Playgroud)

在我的火力基础上,我有

Language
  Germany
    Username
      Alan Turing
        Message
          -Jf6ShYy7niHrqg_x4Tc: "tom"
          -Jf9v0xHAxINUUANrORU: "perfect"
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我得到:

Author: {
  Username={
    Alan Turing={
      Message={
        -Jf6ShYy7niHrqg_x4Tc=tom, 
        -Jf9v0xHAxINUUANrORU=perfect!
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但我只想要消息,而不是整个Firebase数据库.

那么我该如何获得指定的孩子呢?

只有这个工作到目前为止,但它返回整个firebase:

         f.addChildEventListener(new ChildEventListener() {
        // Retrieve new posts as they …
Run Code Online (Sandbox Code Playgroud)

android firebase

1
推荐指数
1
解决办法
1万
查看次数

在列表中摆脱元组,erlang

我想摆脱列表中的所有元组,例如.

我有这样的东西作为输入

test:stack({push, [{{mul,{plus,{num,2},{num,3}},{num,4}},[]}]}, []). 
%% note:  (returns wrong output because of the multiple tuples brackets)
Run Code Online (Sandbox Code Playgroud)

如果我有这样的事情:

proj:stack({push, [mul,plus,{num,2},{num,3},{num,4}]}, []). 
%% this would return: 
%% [{push,{num,4}},{push,{num,3}},{push,{num,2}},
%%  {push,plus},{push,mul}] 
%% This is near to what I need.
Run Code Online (Sandbox Code Playgroud)

我的代码是这样的:

stack({push, []}, StackList) -> StackList;
stack({push,[H|T]}, StackList) ->   
stack({push, T}, [{push,H} | StackList]). 
Run Code Online (Sandbox Code Playgroud)

我希望实现这样的目标:

{push, {num, 4}}, {push, {num, 3}}, 
{push, {num, 2}}, {add}, {mul}, {pop}, {ret}
Run Code Online (Sandbox Code Playgroud)

我想过使用过滤器来实现这个目标,但也许是其他的东西?

erlang filter

1
推荐指数
1
解决办法
229
查看次数